Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 查询ajax调用中的分析错误_Jquery_Ajax - Fatal编程技术网

Jquery 查询ajax调用中的分析错误

Jquery 查询ajax调用中的分析错误,jquery,ajax,Jquery,Ajax,调用一个用php和ajax编写的webservice调用将以错误函数结束 <script> $(document).ready(function(){ alert('ajax'); $.ajax({ type: "GET", dataType: "json",

调用一个用php和ajax编写的webservice调用将以错误函数结束

 <script>
            $(document).ready(function(){
                alert('ajax');
                $.ajax({ 
                               type: "GET",
                    dataType: "json",
                   // crossDomain: true,
                     contentType: "application/json",
                    url: "http://domain/Customer/getCountryList",
                    headers: {
                        Accept: "application/json",
                        "Access-Control-Allow-Origin": "*",
                       "Access-Control-Allow-Methods": "GET"
                   },
                   success: function(data){   
                       alert("In S"); 
                    },
                    error:function(xhr,statusText){
                    alert("In N");

                  alert('Request Status: ' + xhr.status + ' Status Text: ' + xhr.statusText + ' ' + xhr.responseText);
                   }
                })
            })

        </script>

如何解析此输出:

首先:这是响应头而不是请求头,您只能从
$.ajax()发送请求头。

分析错误: 您正试图使用ajax访问其他域,但在您无法使用ajax访问响应之前,web服务器不会提供上述标头,这称为
跨源请求阻止

跨源请求被阻止的原因:同源策略不允许读取web服务器上的远程资源。这可以通过将资源移动到同一域或启用CORS来解决


如果服务器提供了
JSONP
回调方法,您还可以访问另一个服务器响应,如果其他一切正常,请参阅更多详细信息
数据类型:“json”
表示将传入数据解析为json

但是,由于
“\u0001”
字符串,您的json数据无效

因此,删除
数据类型:“json”
并替换

data = data.replace("\u0001", "\\\\u0001")
然后解析为json


这还不足以理解问题。。Plz提供更多信息,您可以使用$.parseJSON(数据);为了解析json数据。它似乎已经是json了。您可以访问国家/地区,就像这个示例一样。您是尝试跨域访问还是使用同一台服务器?“访问控制允许来源”:“*”,“访问控制允许方法”:“GET”指定了服务文件中的上述两行,并且启用了CORS,但是仍然显示相同的错误,因此不需要在ajax请求头中传递这些头这些响应头那么您在响应
error:function()
调用时的问题是什么?
headers: {
       Accept: "application/json",
       "Access-Control-Allow-Origin": "*",
       "Access-Control-Allow-Methods": "GET"
}
data = data.replace("\u0001", "\\\\u0001")