ajax跨域不在jquery中工作

时间:2016-04-25 07:37:59

标签: jquery ajax

错误:

  

对预检请求的响应未通过访问控制检查:“Access-Control-Allow-Origin”标头包含多个值“http://localhost:8080,*”,但只允许一个。因此,不允许原点“http://localhost:8080”访问。

$("#selector3").autocomplete({
            source: function(request, response) {               

                $.ajax({
                   url: "http://example.com/"+$("#selector3").val(),
                    type: "GET",
                        dataType: "json",
                        data: request,
                        processData: true,
                        data: {},

                        headers: { 
                            "Access-Control-Allow-Origin" : "*",
                            "Access-Control-Allow-Headers": "origin, content-type, accept"
                                    },

                        crossDomain: true,
                    success: function(data) {   
                        alert(data.Company_Id);
});

3 个答案:

答案 0 :(得分:2)

请使用JSONP进行跨域脚本编写。

检查以下示例代码:

$.ajax({
    url: "http://example.com/" + $("#selector3").val(),
    type: "GET",
    dataType: 'jsonp', // Notice! JSONP <-- P (lowercase)
    data: request,
    processData: true,
    data: {},
    headers: {
        "Access-Control-Allow-Origin": "*",
        "Access-Control-Allow-Headers": "origin, content-type, accept"
    },
    success: function(data) {
        alert(data.Company_Id);
    }
});

答案 1 :(得分:0)

除了您拥有权利之外,您无法在其他网站源代码上执行ajax操作。你必须在服务器端。在php中你可以使用cURL,在.net中你可以使用html敏捷包。

答案 2 :(得分:0)

您从Javascript发送到服务器的标头应由服务器返回。如果您无法访问服务器,则无法访问。这意味着服务器将您的域作为合法处理者接受。

接下来,您可以尝试JSONP调用。请查看以下网址:https://learn.jquery.com/ajax/working-with-jsonp/