jquery-1.6.2中的$ .ajax()错误,但jquery-1.4.1中没有

Eri*_*cia 6 ajax jquery web-services

我过去常常$.ajax()使用本地.asmx webservice.这是我的电话代码:

    $("#btnGetOne").click(function() {
        $.ajax({
            type: 'POST',
            contentType: 'application/json; charset=utf-8',
            url: 'http://localhost:53003/TestWebService.asmx/GetServant',
            data: '{ "servant_id": "' + $("#txtServantID").val() + '" }',
            dataType: 'json',
            success: function(data, textStatus, jqXHR) {
                var jsnData = $.parseJSON(data.d);
                $('#DisplayArea').html(jsnData.Servant_Name);
            },
            error: function(jqXHR, textStatus, errorThrown) {
                alert(textStatus + ' ' + errorThrown);
            }
        });
    });
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,当我单击btnGetOne时执行ajax调用.

在我的问题标题中,这适用于jquery-1.4.1,但是当我使用jquery-1.6.2时,我得到一个errorThrown说法No Transport.

还有什么我想念的吗?

Pas*_*TIN 7

localhost:53003在您尝试使用Ajax(域上的URL)时,可能无法加载您的HTML + JS页面localhost:53003.

因此,看起来您正在尝试进行跨域请求,这是禁止的 - 请参阅同源策略.


看一下文档jQuery.support,您可能想启用jQuery.support.cors (引用):

cors等于true浏览器是否可以创建XMLHttpRequest 对象以及该XMLHttpRequest对象是否具有withCredentials 属性.

要在不支持cors但允许跨域XHR请求(Windows小工具等)的环境中启用跨域请求,请设置$.support.cors = true;.


以下是一些可能有用的链接: