再次更新吧,上次找到了一个get方法简单的使用可以避免 No 'Access-Control-Allow-Origin' 的问题,然后我就把GET改成POST,结果就出错,前端代码也只是改了POST,如下:
$.ajax({
// method: 'GET',
method: 'POST',
url: "http://127.0.0.1:8000/register/helloApi" ,
dataType: 'json' ,
data:{},
success: function(data){
console.log(data);
var s = data['msg']+x;
var s1 = data['data']
console.log(s);
$("#p1").text(s1)
$("#result").html(s1+s);
}
运行的时候,直接报错:Access to XMLHttpRequest at 'http://127.0.0.1:8000/register/helloApi' from origin 'null' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
这我就纳闷了,为什么GET可以POST不可以(这个问题,还没百度,后面问问度娘),就去百度找解决方法了,之前找GET问题的时候记得有一个包可以解决跨域名的问题,果断回头试试(之前觉得太麻烦了,因为是瞎玩)
django-cors-headers就是这个,一顿pip instatll django-cors-headers 然后按照找到的一顿操作,找到的方法地址如下:
https://www.cnblogs.com/HZY258/p/11926609.html
可以参考一下就是,挺详细的,我就不复制代码了(我那边都是一下瞎研究的东西,没啥好粘贴的)
然后然后然后就报错了,虽然不知道什么报错,直接去度娘了
报错如下:
django.core.management.base.SystemCheckError: SystemCheckError: System check identified some issues:
ERRORS:
?: (corsheaders.E013) Origin '*' in CORS_ORIGIN_WHITELIST is missing scheme or netloc
HINT: Add a scheme (e.g. https://) or netloc (e.g. example.com).
System check identified 1 issue (0 silenced).
这个也找到原因了,解决地址如下:
https://www.cnblogs.com/sea-stream/p/10965147.html
这次终于能正常运行了,一顿操作猛如虎,赶紧前端试一试
结果又出现了新问题,直接403报错:POST http://127.0.0.1:8000/hello/Api 403 (Forbidden)
想想就心酸,这时候怎么能放弃呢,继续找万能的度娘,然后找到一个特别详细的解决方法,虽然我看的有点云里雾里,地址如下:
https://cloud.tencent.com/developer/article/1352455
我大概是按照方法二实现的
终于,整个POST可以使用了,问题终于解决了,虽然整个过程是云里雾里。