【发布时间】:2016-11-11 00:09:49
【问题描述】:
我正在尝试从我的网站向远程服务器发送 POST 请求,但遇到了一些 CORS 问题。
我在互联网上进行了搜索,但没有找到针对我的具体问题的解决方案。 这是我的 ajax 请求参数:
var params = {
url: url,
method: 'POST',
data: JSON.stringify(data),
contentType: 'json',
headers: {
'Access-Control-Request-Origin': '*',
'Access-Control-Request-Methods': 'POST'
}
在后端是我在 python 中的代码:
@app.route(SETTINGS_NAMESPACE + '/<string:product_name>', methods=['POST', 'OPTIONS'])
@graphs.time_method()
def get_settings(product_name):
settings_data = helper.param_validate_and_extract(request, None, required=True, type=dict, post_data=True)
settings_data = json.dumps(settings_data)
response = self._get_settings(product_name, settings_data)
return output_json(response, requests.codes.ok, headers = {
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Methods': 'POST'
})
我的控制台出现错误:
XMLHttpRequest 无法加载 [http://path-to-my-server]。请求头域 Access-Control-Request-Methods 不允许 预检响应中的 Access-Control-Allow-Headers
我确实注意到我也可以添加 'Access-Control-Request-Headers',但我不确定它是否有必要,它会给我带来更多问题,所以我删除了它。
有谁知道如何解决这个问题?
【问题讨论】:
-
您的 ajax 请求不应发送
Access-Control标头,只有服务器发送这些标头。 -
谢谢,它成功了。将其发布为答案,我会批准
标签: javascript jquery python ajax cross-domain