【问题标题】:AJAX REST API requestAJAX REST API 请求
【发布时间】:2017-09-09 03:44:43
【问题描述】:

我的问题是我无法向服务器发送正确的请求以从他那里以 json 行的形式得到答复。
这是我的代码:

$.ajax({
    type: "GET",
    url: url,
    dataType: 'json',
    crossDomain: true,
    username: 'username',
    password: 'password',
    headers: {
        'Access-Control-Allow-Origin': '*'
    },
    success: function(response) {
        console.log(response);
    }
})

当我尝试发送请求时,出现错误:

XMLHttpRequest 无法加载 URL。对预检请求的响应不 通过访问控制检查:没有“Access-Control-Allow-Origin”标头 出现在请求的资源上。因此,原点“空”不是 允许访问。

【问题讨论】:

  • 首先您忘记了 ajax 调用中的数据选项。第二,如果出现 symatic 故障,我们需要查看服务器请求应该是什么样的,第三。允许来源是我认为与 ajax 结合起来搜索最多的失败之一;) 谷歌结果有数千个
  • 如果前端应用程序与您请求的应用程序位于不同的域中,那么您应该与后端人员讨论如何跨域发送数据。如果是关于 CORS,那么一切都由浏览器处理。删除服务器发送的“Access-Control-Allow-Origin”标头。添加“Accept: application/json”通知服务器数据需要序列化为JSON。您应该预留一些时间并阅读有关 CORS 的信息。从长远来看,它将为您服务。以LINK 为例。

标签: javascript ajax rest api get


【解决方案1】:
var dataSet = {
  username: 'username',
  password: 'password',
}

$.ajax({
  type: "GET",
  url: url,
  dataType: 'json',
  crossDomain: true,
  data: dataSet,
  // the origin header has to be set server side
  /* 
  headers: {
   'Access-Control-Allow-Origin': '*'
  },
  */
  success: function(response) {
    console.log(response);
  }
});

参数已由dataSet 和选项数据分配。 允许源头必须设置在服务器端,而不是在客户端

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-11
    • 1970-01-01
    相关资源
    最近更新 更多