【发布时间】: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:哦,好吧,同源政策...
【问题讨论】: