3

我正在尝试向以下 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.
4

1 回答 1

2

您的服务器不支持JSONP。要么改变那个

或者

在 nginx 中添加标头以支持服务器端的 CORS。或者您可以在服务器端添加 CORS 标头。

header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Headers: *");

一旦你这样做了,你可以使用简单的访问你的代码

$.getJSON(url).done(function(response) {
    console.log(response); //here's your response
});
于 2013-10-02T04:09:49.500 回答