四次元口袋 2019-07-24 14:42 采纳率: 0%
浏览 1716

为什么我的 JavaScript 代码在所请求的资源上没有出现“Access-Control-Allow-Origin'header”错误

而Postman就没问题?
我正在尝试通过连接到内置在 Flask 中的 RESTful API 来使用 JavaScript 进行授权。 但是,当我提出请求时,我会得到以下错误:
无法加载 http://myapiurl/login。 请求的资源上没有“访问控制允许原点”头。 因此,“ null”是不允许访问的。
我知道 API 或远程资源必须设置表头,但为什么当我通过 Chrome 扩展Postman发出请求时,它还能工作呢?
请求代码如下:

$.ajax({
    type: "POST",
    dataType: 'text',
    url: api,
    username: 'user',
    password: 'pass',
    crossDomain : true,
    xhrFields: {
        withCredentials: true
    }})
    .done(function( data ) {
        console.log("done");
    })
    .fail( function(xhr, textStatus, errorThrown) {
        alert(xhr.responseText);
        alert(textStatus);
    });

  • 写回答

3条回答

  • weixin_38166163 2019-07-24 15:05
    关注

    如果我理解正确的话,那么你正在对页面不同的域执行 XMLHttpRequest。 因此,出于安全原因,浏览器屏蔽了它,因为它通常允许同一源的请求。当你希望执行跨域请求时,需要执行一些不同的操作。关于如何实现这一点的一个教程是使用 CORS。
    When you are using they are not restricted by this policy. Quoted from Cross-Origin XMLHttpRequest:
    当您使用 postman时,不受此策略的限制。
    常规 web 页面可以使用 XMLHttpRequest 对象从远程服务器发送和接收数据,但是它们受到同源策略的限制。 扩展并不是那么有限。 扩展可以与原始服务器之外的远程服务器通信,只要它首先请求跨原始权限即可。

    评论

报告相同问题?

悬赏问题

  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥200 uniapp长期运行卡死问题解决
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?
  • ¥15 乘性高斯噪声在深度学习网络中的应用
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集