Jquery ajax在mvc中调用外部URL中的错误

时间:2015-08-10 01:06:36

标签: jquery ajax model-view-controller

我在给出外部URL获取结果时在jquery ajax调用中收到错误。网址是mvc Dot net

 var url = "http://demo.bucesoft.com/BUCESFTDETAILS/insertrecrd";
         $.ajax({
             url: url,
             contentType: "application/json; charset=utf-8",
             datatype: "json",
             data: "{'obj':'" + Senddetails + "'}",
             type: "POST", // 'GET' or 'POST' ('GET' is the default)
             success: function (data) {
                 alert('sucess');
                 console.log(data);

             },
             error: function (xhr, status, error) {
                 var err = eval("(" + xhr.responseText + ")");
                 alert(err.Message);
             }
         });

在这我得到错误

XMLHttpRequest cannot load http://demo.bucesoft.com/BUCESFTDETAILS/insertrecrd. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access.

请帮帮我

1 个答案:

答案 0 :(得分:0)

您必须启用CORS才能启用跨域请求。

要启用CORS支持,请将Microsoft.AspNet.WebApi.Cors NuGet包添加到项目中。

将此代码添加到您的配置中:

public static void Register(HttpConfiguration config)
{
    // New code config.EnableCors();
}

要启用跨源请求,请将[EnableCors]属性添加到Web API控制器或控制器方法中:

[EnableCors(origins: "http://example.com", headers: "*", methods: "*")]
public class TestController : ApiController 
{
    // Controller methods not shown...
}

在PHP中,您可以通过设置自定义标题来实现,如下所示。

header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Methods: GET, POST, OPTIONS");
header("Access-Control-Allow-Headers: Content-Type, Content-Length, Accept-Encoding");

您还可以通过定义

等名称来启用该特定网站
header("Access-Control-Allow-Origin: http://yourdomainname.com/");