AJAX没有使用成功处理程序函数

AJAX not using the success handler function

本文关键字:处理 程序 函数 成功 AJAX      更新时间:2023-09-26

嗨,我的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对象。

有人知道吗

【运营合同】[System.ServiceModel.Web.WebGet(UriTemplate="getCustomerById?customerId={customerId}",[RespnseFormat=WebMessageFormat.Json)]Customer GetCustomerById(Guid customerId);

这当然是一个奇怪的错误。我的猜测是ajax处理程序期望不同的响应类型,当它接收到"错误"类型时,它会抛出一个错误。

所以我想问题出在对服务器和回调使用JSONP上。您确定服务器能够响应JSONP请求吗?