2013-12-17 120 views
1

进出口使用AJAX使用AJAX:无效JSON响应

http:xxx.myserver.com/myfolder/example.json

$.ajax({ 
    url:"http:xxx.myserver.com/myfolder/example.json", 
    dataType:"json", 
    success:function(data, status) { 
     alert("success"+data+":::"+status); 
    }, 
    error:function(request, status, error) { 
     alert("Error:"+JSON.stringify(request)+":::"+status+"::"+error); 
    }, 
}); 

为此,我得到的输出像下面

Error:{"readyState":0,"responseText":"","status":0,"statusText":"error"}:::error::

我用Google搜索的解决方案也有人说,来替代阅读我的JSON数据JSON来JSONP如果我更换

dataType:json to dataType:jsonp

我喜欢输出

Error{"readyState":4,"status":200,"statusText":"success"}:::parsererror::Error: jQuery110107852220840286463_1387290139272 was not called

它不是在所有进入成功功能。

请任何人都为我提供解决方案。提前致谢。

+3

使用浏览器开发者控制台直接检查服务器响应。 – Pointy

+3

请使用描述性问题标题。 – undefined

+3

如果Web服务支持它,则只能使用JSONP,如果脚本托管在另一个域上,而不是ajax url,则只需要它。 (如果它们不同,请参阅http://en.wikipedia.org/wiki/Same-origin_policy) – xec

回答

1

我解决了我的问题。

您的JSON应该在这个格式如:jsonCallback({"sites":[{"siteName": "JQUERY4U","domainName": "http://www.jquery4u.com"},{"siteName": "BLOGOOLA","domainName": "http://www.blogoola.com"},{"siteName": "PHPSCRIPTS4U","domainName": "http://www.phpscripts4u.com"}]});

我改变了我的回应jsonCallBack

$.ajax({ 
    url:"http:xxx.myserver.com/myfolder/example.json?callback=?", 
    dataType:"jsonp", 
    async: false, 
    jsonpCallback: 'jsonCallback', 
    contentType:"application/json", 
    success:function(data, status) { 
     alert("success"+JSON.stringify(data)); 
    }, 
    error:function(request, status, error) { 
     alert("Error:"+JSON.stringify(request)+":::"+status+"::"+error); 
    }, 
}); 

我进入成功的功能,并让我的JSON响应。谢谢你的帮助。这是因为跨域问题。