【问题标题】:JQuery.ajax() doesn't receive a response bodyJQuery.ajax() 没有收到响应正文
【发布时间】:2015-02-08 07:37:55
【问题描述】:

我正在尝试制作一个 SmartTV 应用程序,它必须从某个 url 请求它的频道列表。

当它出现时,我在看到预期的内容长度时没有收到响应文本。 jQuery.ajax 抛出一些状态为 0 的错误。但是,当通过浏览器打开相同的 URL 时,我收到了预期的响应。

到目前为止,我发现的唯一区别是浏览器能够设置接收到的 cookie,然后可以将其发回。但 SmartTV 应用程序就像另一个做跨域 ajax 请求的网站。它接收 cookie 作为响应,但没有设置它(或者至少它不会在需要时将其发回)。

jQuery.ajax({
    url: 'http://url...',
    data: "",
    dataType: 'xml',
    success: function (output, status, xhr) {
        alert(output);
    },
    error: function(xhr, ajaxOptions, thrownError) {
        alert("xhr " + xhr.status);
        alert("error " + thrownError);
    },
    crossDomain: "true"
});

是否可以像我在这里使用的方式使用 jquery?如果没有,还有什么其他方法可以获取该响应并设置正确的 cookie?

编辑:这似乎不是任何 cookie 的问题。我创建了我的应用程序请求的接口 WebAPI。该 WebAPI 能够获得正确的结果,然后将其作为纯文本发送到 SmartTV 应用程序。应用程序端的结果是相同的 - 在响应标头中我看到预期的内容长度,但没有内容。有趣的是,我也在 IE 中将该应用程序作为一个普通网站进行测试,而不是在一些有故障的 SmartTV 上。如果 jQuery.ajax 没有返回响应体,我做错了什么?

编辑 2:哦,好吧,同源政策...

【问题讨论】:

    标签: jquery ajax


    【解决方案1】:

    使用xhr.responseText获取数据。

    【讨论】:

    • 嗨。请检查我的更新。我做了一些测试,似乎根本没有响应文本(我正在监视 IE 中的请求,将该应用程序作为网站运行)。因此,当我执行简单的获取请求时,它可以工作。但是通过jquery获取请求返回空响应体。
    猜你喜欢
    • 2014-05-02
    • 2017-09-20
    • 2019-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-29
    相关资源
    最近更新 更多