【发布时间】:2017-12-23 21:49:47
【问题描述】:
当我尝试使用 ajax 发布数据时,我在控制台中收到此错误。这个数据应该在这个 url 上得到确认,然后我应该得到一个包含更多数据的响应。
Cross-Origin Request Blocked: The Same Origin Policy disallows
reading the remote resource at https://secure.paygate.co.za/payweb3/process.trans.
(Reason: CORS header 'Access-Control-Allow-Origin' missing).
我使用 django-cors-headers 作为中间件来添加标题。我遵循了所有的配置说明。
我的设置.py:
INSTALLED_APPS = [
# ...
'corsheaders',
# ...
]
MIDDLEWARE = [
# ...
'corsheaders.middleware.CorsMiddleware',
# ...
]
CORS_ORIGIN_ALLOW_ALL = True
CORS_ALLOW_METHODS = (
'GET',
'POST',
'OPTIONS',
)
ajax 调用:
$.ajax({
type: "POST",
url: url,
dataType: "json",
data: data,
success: function(data){
alert('success');
},
error: function(data){
alert('error');
}
});
数据和 url 在上面声明,那部分很好。 我每次提交时都会收到错误警报。
我的包裹:
Django==1.11.3
django-cors-headers==2.1.0
pytz==2017.2
我使用的是 Windows 10。
编辑:我为 ajax 添加了 csrfSafeMethod。我不知道这可能与它有关吗?此代码由 djangoproject 提供,此处为 docs.djangoproject.com/en/1.11/ref/csrf
EDIT2:我最终在内部发送了一个 ajax 调用,所以我使用 urllib 使用 django 进行了跨域处理。 This 在跨域发布数据方面帮助了我很多。
【问题讨论】:
-
CorsMiddleware的添加顺序正确吗? -
this 可能会帮助你。
-
@hanzTheFranz 不,这不是问题,
-
你的网址是
https://secure.paygate.co.za/payweb3/process.trans? -
@Ykh 是的,这就是端点
标签: jquery python ajax django django-cors-headers