使用jquery或ajax或angular js获取json响应

时间:2017-09-06 16:31:00

标签: javascript jquery ajax request

早上好 stackoverflow

我尝试从URL获取json响应 Click,正如预期的那样,我在GoogleChrome中获得了 Access-Control-Allow-Origin ,我切换到FireFox,以避免这个问题,然后我得到状态-1,数据为空。

$(document).ready(function () {
        var URL = "https://www.infojort.com/axs/search?q=marouani%20zied";
        console.log('------------------------');
        $.ajax({
            url: URL,
            dataType: 'application/json;charset=utf-8',
            success:function (data) {
                console.dir(data);
                console.log('yes');
            },
            complete:function () {
                console.log('yes');
            }
        })

        $.ajax({
            dataType: "application/json;charset=utf-8",
            url: URL,
            success: function (data) {
                console.dir(data);
            }
        });

        $.getJSON(URL, function (data) {
            var items = [];
            $.each(data, function (key, val) {
                items.push("<li id='" + key + "'>" + val + "</li>");
            });

            $("<ul/>", {
                "class": "my-new-list",
                html: items.join("")
            }).appendTo("body");
        });

注意:

  • 我可以毫无问题地得到邮递员的答复。
  • Content-Type→application / json; charset = utf-8

我需要一个带有jquery,ajax或angularjs的解决方案。 谢谢大家。

1 个答案:

答案 0 :(得分:0)

您的问题似乎与API有关,而与您的JavaScript调用无关, 我的意思是你试图从Cross Origin调用你的API,出于安全原因,默认情况下不允许这样做,所以你必须在服务器中启用cross origin来进行这种调用< / strong> https://spring.io/understanding/CORS

看看这个,它是一个Cross Origin调用(AngularJS中的Jquery):

$.ajax({
  type: 'POST',
  url: CTHelper.ApiUrl() + '/token',
  data: {
    grant_type: 'password',
    username: $scope.UserName,
    password: $scope.Password
  },
  success: function (result) {
    alert('OK');
  },
  error: function (result) {
    alert('Error');
  }
});

API必须允许CORS ,这是文件Startup.Auth.cs的一部分

[此示例使用AspNet Web Api,C#作为后端]

public void ConfigureAuth(IAppBuilder app) {
  ...
  app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);
  ...
}

Microsoft.Owin.Cors可以作为nuget包下载。