您好我的AJAX返回JSON对象时出现问题,因为它似乎没有使用成功处理函数,而是直接进入错误处理程序。
我不明白的是,相同的AJAX脚本将成功返回另一个API的JSON对象。
我正在使用的代码就是这个
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> <script> $(document).ready(function () { $.ajax({ type: "GET", dataType: "jsonp", url: "http://www.flickr.com/services/feeds/photos_public.gne?tags=soccer&format=json&jsoncallback=?", success: function (flikrData) { console.log(flikrData); document.writeln("<Table style='width:1000px; height:auto; text-align:center; margin:auto; background-color:lightblue;'>"); document.write("<tr>"); for (var ini = 0; ini <= flikrData.items.length; ini++) { document.write("<tr>"); document.write("<td>"); document.writeln("Title: " + flikrData.items[ini].title + "Author: " + flikrData.items[ini].author + "Author ID: " + flikrData.items[ini].author_id + "Date Taken: " + flikrData.items[ini].date_taken + "Description: " + flikrData.items[ini].description + "Link: " + flikrData.items[ini].link + flikrData.items[ini].media.m + "Tags: " + flikrData.items[ini].tags); document.write("</td>"); document.write("</tr>"); }; document.write("<tr>"); document.writeln("</Table>"); }, error: function (jqHXR, textStatus, errorThrown) { console.log(jqHXR, textStatus, errorThrown); } }); }); </script>
现在上述工作正常,并将其用作概念证明。
从上面到真实的唯一区别,我在下面包含了一个更改版本以显示格式的差异,是下面的一个似乎是暴露的web服务。这是否意味着我必须以不同方式处理JSON对象?
http://test.net.au/Services/ClientApi.svc/listEventsByCustomer?customerId=" + customerID + "&format=json&jsoncallback=?"
我尝试了类似问题的人建议的上述许多不同变体,例如jsonp: '$callback'
,?callback=?
,&callback=?
,但似乎没有任何效果。
错误功能在Chrome控制台中产生以下结果。
{"readyState":4,"status":200,"statusText":"success"}
根据我的理解,这意味着它已经有效...我甚至可以看到在Fiddler中返回的JSON对象,但它不会触发成功处理程序。
我已经测试了Jsonlint中的实际链接,并且已经验证它确实是一个JSON对象。
有没有人有任何想法
[OperationContract的] [System.ServiceModel.Web.WebGet(UriTemplate =“getCustomerById?customerId = {customerId}”, [RespnseFormat = WebMessageFormat.Json)] 客户GetCustomerById(Guid customerId);
答案 0 :(得分:1)
这肯定是一个奇怪的错误。我的猜测是,ajax处理程序期望一种不同的响应类型,并且当它收到“错误”时。输入它会引发错误。
所以我猜测问题在于将JSONP与该服务器和回调一起使用。您确定服务器能够响应JSONP请求吗?