繁体   English   中英

为什么我的jQuery Ajax调用不成功

[英]Why my jQuery ajax call is not successful

我正在开发我的Web应用程序并在localhost:8080上运行它,在我的js文件中,我有一个ajax调用来从服务器获取xml数据:

$.ajax({
        url: 'http://COMPANY_DOMAIN.com/company-interface/the-id',
        type: 'GET',
        async: false,
        dataType: 'application/xml',
        data: {id: 43},
        success: function(data) {

            alert(data);

        },
        error: function(xhr, status, error){
            alert('error happens');
        }
     })

我可以访问URL http://COMPANY_DOMAIN.com/company-interface/the-id/?id=43 ,它将在浏览器上显示xml结果,但是我上面的ajax调用总是转到错误功能。

我检入了Firebug,“ xml”标签显示“ XML解析错误:找不到元素位置:moz-nullprincipal:{9fd0dca8-cf07-4401-b1de-ab04e8aa00bc}行号1,第1列 :”,firebug显示了URL GET是http://COMPANY_DOMAIN.com/company-interface/the-id/?id=43& = 1302610001570

为什么萤火虫GET显示“ ...&= 1302610001570 ”? 这是什么意思? 为什么我可以访问该URL,但我的ajax调用失败?

- - - - - - - - 编辑 - - - - - - - -

嗨,我改为使用本地主机请求,如:

$.ajax({
            url: 'http://localhost:8080/company-interface/the-id',
            type: 'GET',
            async: false,
            dataType: 'xml',
            data: {id: 43},
            success: function(data) {

                alert(data);

            },
            error: function(xhr, status, error){
                alert('error happens');
            }
         })

但是我遇到了同样的错误...请提供更多建议...谢谢。

这可能是由于跨域访问控制 您正在访问试图连接到另一个网站的计算机上的站点。 除非您定义Access-Control-Allow-Origin标头,否则这是不允许的。

就像@Craig所说的那样,需要更改xml内容类型。

试试下面的代码:

 $.ajax({
            url: 'http://localhost:8080/company-interface/the-id',
            type: 'GET',
            async: false,
            dataType: 'text',
            data: {id: 43},
            success: function(data) {

            // Assume response like..
            // <note>
            //    <from>Jani</from>
            //    <to>Tove</to>
            //    <message>Remember me this weekend</message>
            //  </note>

            xmlDoc = $.parseXML( data ),
            $xml = $( xmlDoc ),
            $message = $xml.find("message")
            alert($message.text());
            $("#xmlResonse").html($message.text());

        },
        error: function(xhr, status, error){
            alert('error happens');
        }
     })

JavaScript遵循相同的原产地政策 您在本地主机上运行的脚本无法访问COMPANY_DOMAIN.com。

将您的数据类型更改为application/xmltext/xml

就像其他评论所暗示的那样,您的URL是否在另一个域上? 如果不是,请尝试使用相对URL。

1302610001570用于测量响应,

您是否检查了响应是否创建了有效的xml?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM