Django jquery ajax cors错误
当我尝试使用ajax发布数据时,控制台中会出现此错误。这个数据应该在这个url上得到确认,然后我应该从它那里得到一个包含更多数据的响应Django jquery ajax cors错误,jquery,python,ajax,django,django-cors-headers,Jquery,Python,Ajax,Django,Django Cors Headers,当我尝试使用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-Contr
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头作为中间件来添加头。我遵循了所有的配置说明
My settings.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
我在Windows10上
编辑:我为ajax添加了csrfSafeMethod。我不知道这是否与此有关?。此代码由djangoproject在这里docs.djangoproject.com/en/1.11/ref/csrf提供
EDIT2:我最终在内部发送了一个ajax调用,因此我使用urllib与django进行了跨域操作。帮助我跨域发布数据。根据文档: Corsmidlware应尽可能放置在高处,尤其是在 任何可以生成响应的中间件,如Django的 CommonMiddleware或Whitenoise的WhiteNoiseMiddleware。如果不是 在此之前,它将无法将CORS标头添加到这些 答复 我建议您将其作为当前所有中间件中的第一个中间件(最高)
参考资料:
Corsmidlware
是否按正确顺序添加?可能会对你有所帮助。@hanzTheFranz-nah这不是问题,你的url是https://secure.paygate.co.za/payweb3/process.trans
?@Ykh是的,就是这个问题,同样的错误,但是我使用了不同的方法。请参见问题末尾的EDIT2下的更多信息。