【发布时间】:2014-06-16 09:27:38
【问题描述】:
我们正在尝试使用 TypeScript 进行跨域 GET 请求。我们使用 XMLHttpRequest、$.get 和 $.ajax 进行了测试。
使用 XMLHttpRequest,onreadystatechange 永远不会被触发。当使用 $.ajax 方式时,我们注意到我们收到了一个错误(text was 'error' :( )。奇怪的是,fiddler 返回了 200 响应,并且在 textview 中查看,我们可以看到我们请求的所有文本.
服务器发送的响应是 HTML / 文本。 这是我们尝试过的代码:
public GetFeatureInfo(url: string): void {
$.ajax({
url: url,
type: 'GET',
cache: false,
dataType: 'text',
beforeSend: function (xhr) {
xhr.overrideMimeType("text/plain; charset=UTF-8");
}
}).done(function (data) {
alert(data);
}).fail(function (jqXHR, textStatus) {
alert("Request failed: " + textStatus);
}).always(function () {
});
}
有什么想法吗?
感谢您的帮助!
比约恩
【问题讨论】:
-
肯定是跨域的吗?您在选项中设置了
crossDomain: true,您必须在 jQuery 中执行此操作才能使跨域请求成功。 (或者你在使用 JSONP 吗?) -
是的,另一家公司编写了 API。我添加了 crossDomain: true,但它仍然无法正常工作。 Fiddler 收到结果,我的脚本没有。我们没有使用 JSONP,它们返回的是纯文本。
标签: jquery ajax xmlhttprequest typescript