XMLHttpRequest cannot load http://localhost:8080/UP/tongHua?_search=false&nd=1477198221063&rows=10&page=1&sidx=&sord=asc. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://127.0.0.1:8080' is therefore not allowed access.
主线程中同步的 XMLHttpRequest 已不推荐使用,因其对终端用户的用户体验存在负面影响。更多帮助请见 http://xhr.spec.whatwg.org/ jquery-3.1.0.min.js:4:15668
已拦截跨源请求:同源策略禁止读取位于 http://127.0.0.1:8080/UP/tongHua?_search=false&nd=1477197878296&rows=10&page=1&sidx=&sord=asc 的远程资源。(原因:CORS 头缺少 'Access-Control-Allow-Origin')。
之前写好可以正常调试的代码突然不能访问,很是奇怪。浏览器还提示了上面的错误。
百度了下说是跨域访问安全控制,不能读到相应的数据。纳闷是不是几个月不碰代码,浏览器安全策略升级,导致不能访问。
仔细看网上的内容,导致明白问题的原因是ajax跨域问题。
你写Ajax的是页面一,而请求的是页面二
我的js是这么写的:
var baseUrl = "http://127.0.0.1:8080/UP/";
$(document).ready(function() {
var grid_selector = "#id_physicalMachine_table",
page_selector = "#id_physicalMachine_page",
queryUrl = baseUrl + "tongHua";
jQuery(grid_selector).jqGrid({
访问的地址是:
http://localhost:8080/UP/
很显然,我的baseurl是127.0.0.1,访问的是localhost,尽管没什么区别,但是ajax请求时就会以为是两个不同的地址请求信息,为了安全考虑,就拒绝了我的访问。
我没有去加
respons.setHeader("Access-Control-Allow-Origin", "*")
而是直接将访问地址改成:
http://127.0.0.1:8080/UP/
大功告成,就是这样!
顺便提一下,开发的时候将chrome设置为禁用缓存,修改js调试要方便很多