【问题标题】:AJAX GET request not console logging response, no errors except a CORB warningAJAX GET 请求不是控制台日志记录响应,除了 CORB 警告之外没有错误
【发布时间】:2019-04-17 17:50:32
【问题描述】:

我正在尝试让我的数据在控制台中显示为一个对象。但它没有这样做,控制台记录“错误”。控制台中显示的唯一其他内容是 Cross-Origin-Read-Blocking 警告。虽然没有错误。如何让我的数据登录控制台?谢谢

 $.ajax({
    url: "valid url that returns JSON",
    type: "GET",
    dataType: "jsonp",
    jsonp: "callback",
    headers: { "Accept": "application/javascript;odata=verbose" },
    success: function (response) {
        console.log(response);
    },
    error: function (xhr, ajaxOptions, thrownError) {
          console.log(xhr);
          console.log(ajaxOptions);
          console.log(thrownError);
      }
});

在上面的代码之前,我有“json”而不是“jsonp”和“application/json”而不是“application/javascript”,如下面的代码所示,但是这些返回了 401 Unauthorized 错误以及“ CORS 没有访问控制允许来源标头”错误。当我添加 jsonp 时,这些错误消失了,并留下了一个 CORB 警告(如上面的代码所示)。但是我的 json 数据仍然无处可寻。控制台记录 ajaxOptions 会导致“parsererror”。控制台日志记录 throwedError 导致

错误:jQuery112409451109716420985_1542218619324 未被调用
在 Function.error (jquery.min.js:2) 在 h.jsonp.b.dataTypes.(匿名函数).b.converters.script json (http://kendo.cdn.telerik.com/2018.3.1017/js/jquery.min.js:4:28685) 在 Xb (jquery.min.js:4) 在 y (jquery.min.js:4) 在 HTMLScriptElement.b.onload.b.onreadystatechange (jquery.min.js:4)"

$.ajax({
    url: "valid url that returns JSON",
    type: "GET",
    dataType: "json",
    jsonp: "callback",
    headers: { "Accept": "application/json;odata=verbose" },
    success: function (response) {
        console.log(response);
    },
    error: function (xhr, ajaxOptions, thrownError) {
          console.log(xhr);
          console.log(ajaxOptions);
          console.log(thrownError);
      }
});

【问题讨论】:

  • 你有dataType: "jsonp""Accept": "application/json。如果要jsonp,则需要application/javascript,如果要json,则需要将dataType更改为dataType: "json"
  • 如果这是唯一的问题,那么这是What is the correct JSON content type?的副本
  • 我将 application/json 更改为 application/javascript,但仍然没有运气。我首先将 json 更改为 jsonp 的原因是为了摆脱 401 未经授权的错误,该错误有效,现在错误消失了。但是我的 json 仍然没有被返回
  • 好吧,您收到了 CORS 错误,因为目标上没有设置 Access-Control-Allow-Origin。 JSONP 不使用 CORS,但响应必须在 JSONP 中,否则将不起作用。我猜响应真的是JSON,你需要处理起源问题。
  • 我也是这么想的。我在 chrome 中打开了 CORS,“Access-Control-Allow-Origin”错误消失了。现在我只剩下一个 401 Unauthorized 错误

标签: jquery ajax kendo-ui request jsonp


【解决方案1】:

这对我有用

    $.ajax({ 
    type: 'GET', 
    url: 'my_url', 
    data: { key: 'value' }, 
    dataType: 'json',
    success: function (data) { 
        console.log(data);
    },
    error: function (xhr, ajaxOptions, thrownError) {
        console.log(xhr);
        console.log(ajaxOptions);
        console.log(thrownError);
    }
});

【讨论】:

  • 当我执行“json”时,它会返回 401 未授权错误和“CORS no access-control-origin-header”错误。当我使用 jsonp 时,没有出现错误,但我的数据仍然没有返回。当我像你一样控制台日志 ajaxOptions 时,它返回 parsererror ......我听说这在 jsonp 中很常见
猜你喜欢
  • 2021-06-27
  • 2013-03-17
  • 2017-03-31
  • 1970-01-01
  • 2016-11-21
  • 1970-01-01
  • 2020-08-06
  • 2017-04-27
  • 2017-03-26
相关资源
最近更新 更多