【发布时间】:2013-10-08 09:30:18
【问题描述】:
我正在尝试向以下 URL 发出简单的 ajax 请求。 https://insightsoftwaresolutions.atlassian.net/rest/api/2/issue/createmeta?projectKeys=TES&issuetypeNames=Bug&expand=projects.issuetypes.fields
当我将 URL 放在浏览器导航栏上并按 Enter 时,它会收到 JSON 响应,但是当我尝试进行 jquery ajax 调用时它不起作用。它没有任何控制台错误。
<script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js'></script>
<script>
$(document).ready(function () {
$.ajax({
cache: false,
type: 'GET',
crossDomain: true,
url: 'https://insightsoftwaresolutions.atlassian.net/rest/api/2/issue/createmeta?projectKeys=TES&issuetypeNames=Bug&expand=projects.issuetypes.fields',
contentType: 'application/json; charset=utf-8',
dataType: 'jsonp',
success: function (data) {
alert("success");
},
error: function (jqXHR, textStatus) {
//displayCallResults(jqXHR);
alert("error");
}
});
});
</script>
更新:
我将数据类型:'jsonp' 更改为数据类型:'json'。然后我得到以下错误。
Origin http://localhost:3029 is not allowed by Access-Control-Allow-Origin.
【问题讨论】:
-
网络标签中有什么?
-
貌似说的api不支持jsonp
-
那么,除了 alert('error'),错误信息和错误代码是什么?另外,您是否使用 Fiddler 来检查请求和响应?你试过用 POST 代替 GET 吗?
-
请添加回调=?因为想通过jsonp获取数据的时候需要jquery4u.com/json/jsonp-examples
-
@WalterBarreiroNeto 因为收到响应,即使数组是空的,我也应该以“成功”警报结束,对吧?那么为什么它最终会收到“错误”警报?
标签: javascript ajax jquery