被CORS策略阻止的Ajax帖子

2024-04-25 18:56:39 发布

您现在位置:Python中文网/ 问答频道 /正文

嗨,我在网上忙了好几个小时,想找到一个解决办法

我正在尝试向我自己的网络服务器发出post请求,该服务器由namescape托管

下面是我调用Post请求的Ajax代码。注意:对不起,我无法显示url

             $.ajax({
                url: "https://api.someurl.com/something" + avariable + "/" + anotherthing,
                type: "POST",
                crossDomain: true,
                dataType: "json",
                success: function (response) {
                    var resp = JSON.parse(response)
                    console.log(resp)
                },
                error: function (xhr, status) {
                    console.log("error")
                }
            });

这是我从另一个stackoverflow post的答案中得到的一个代码,该答案的得票最多。它似乎不起作用。实际上,它们都不起作用

我通过在本地主机上运行的index.html调用这个ajax

我得到了这个错误:

Access to XMLHttpRequest at 'the url i cant show' from origin 'null' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

任何帮助都会让人大吃一惊!我以前从未遇到过这个问题,我不知道如何处理它

更新1 我有权访问后端服务器。它在Python上运行

你知道我如何在那里启用CORS吗

我也不确定这个index.html的来源是什么。因为我将把它打包到electron js桌面应用程序中


Tags: 答案代码服务器logurlindexaccessresponse
2条回答

CORS代表跨来源资源共享

它只是一种阻止未经授权的服务器请求的机制

在您的后端,您将授权您用于访问后端的地址

对于php:

在flask应用程序中安装flask-cors

pip install -U flask-cors

然后在代码中:

from flask import Flask
from flask_cors import CORS, cross_origin
app = Flask(__name__)
cors = CORS(app)

@app.route("/something+avariable/anotherthing")
@cross_origin()
def yourfunction():

或者,手动添加:

def after_request(response):
    header = response.headers
    header['Access-Control-Allow-Origin'] = '*'
    return response

如果您只在开发时需要它,那么您可以使用CORS浏览器扩展,例如Chrome的this,FireFox的this

相关问题 更多 >