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