即使相同的URL将返回内容,Jquery AJAX也会返回错误。这是为什么?

时间:2012-07-09 15:36:50

标签: jquery asp.net ajax web-services

我有一个jquery AJAX请求调用webservice,结果字符串被返回=“已经测试过!”。当我通过网址提出请求时,它会返回:{“testResult”:“已经过测试!”}这对我来说很有意义。

我的错误是jQuery AJAX请求,会点击webservice,点击断点,然后返回字符串,但仍然会点击错误代码而不是成功。

错误代码如下:

 //function(xhr,status,message)
 xhr.statusText = success
 status = parseerror
 message: Error Jquery17204...   was not called.

以下是我的AJAX请求。也许有一些错误,我没有得到,这导致返回的代码错误。

$.ajax({
            type: 'GET',
            url: WEBSERVICE_URL + '/test',
            dataType: 'jsonp',
            success: function (result, textStatus, jqXHR) {
                //success
                result = JSON.parse(result);
                var r = $(result.getWebFormDesignFieldContentsResult)[0];
                var div = $("<div class='modal'>").html(r.d);
                /*
                var d = document.createElement("div");
                d.className = "modal";
                d.appendChild(r[0]);
                */
                $("div.modal").replaceWith(div);
                $("div.modal #queryInput").val(opts);
                $("div.modal").css({
                    top: $(window).height() / 2 - $("div.modal").height() / 2,
                    left: $(window).width() / 2 - $("div.modal").width() / 2
                });
                $("div.modal").fadeIn();
            },
            error: function (xhr, status, message) {
                //error
                //alert("Error: "+result.statusText);
                alert("Error: " + status + " " + message);

                //$("div.modal").replaceWith($("<div class = 'modal'>").html(result.responseText));
                //$("div.modal").fadeIn();
                $("div.overlay").fadeOut();
            }
        });

1 个答案:

答案 0 :(得分:0)

您正在进行JSONP调用,因此从服务器返回的结果必须如下所示:

Jquery17204({"testResult":"Tested!"})

服务器应该使用查询字符串callback并将其用作函数名称。在这种情况下,AJAX请求发送了callback=Jquery17204