因此,我有了这个Go http处理程序,该处理程序将一些POST内容存储到数据存储中,并检索其他一些信息作为响应。在后端,我使用:
func handleMessageQueue(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Access-Control-Allow-Origin", "*")
if r.Method == "POST" {
c := appengine.NewContext(r)
body, _ := ioutil.ReadAll(r.Body)
auth := string(body[:])
r.Body.Close()
q := datastore.NewQuery("Message").Order("-Date")
var msg []Message
key, err := q.GetAll(c, &msg)
if err != nil {
c.Errorf("fetching msg: %v", err)
return
}
w.Header().Set("Content-Type", "application/json")
jsonMsg, err := json.Marshal(msg)
msgstr := string(jsonMsg)
fmt.Fprint(w, msgstr)
return
}
}
在我的firefox OS应用程序中,我使用:
var message = "content";
request = new XMLHttpRequest();
request.open('POST', 'http://localhost:8080/msgs', true);
request.onload = function () {
if (request.status >= 200 && request.status < 400) {
// Success!
data = JSON.parse(request.responseText);
console.log(data);
} else {
// We reached our target server, but it returned an error
console.log("server error");
}
};
request.onerror = function () {
// There was a connection error of some sort
console.log("connection error");
};
request.send(message);
传入的部分都一直如此。但是,我的回复被阻止了。给我以下信息:
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://localhost:8080/msgs. This can be fixed by moving the resource to the same domain or enabling CORS.
我尝试了许多其他操作,但是无法从服务器获得响应。但是,当我将Go
POST方法更改为GET并通过浏览器访问该页面时,我得到的数据太糟糕了。我无法真正确定哪一方出了错以及为什么出问题:这可能是Go不应阻止此类请求,但也可能是我的JavaScript非法。
@Egidius,在创建XMLHttpRequest时,应使用
var xhr = new XMLHttpRequest({mozSystem: true});
什么是mozSystem?
mozSystem布尔值:将此标志设置为true可以进行跨站点连接,而无需服务器使用CORS选择加入。需要设置mozAnon:true,即不能与发送cookie或其他用户凭证一起使用。这仅适用于特权(已审核)的应用程序;它不适用于Firefox中加载的任意网页。
清单变更
在清单上,请不要忘记在您的权限中包括以下行:
"permissions": {
"systemXHR" : {},
}
问题内容: 如何通过Ajax从远程URL获取内容? jQuery ajax请求被阻止,因为跨域 控制台日志 跨域请求被阻止:“相同源策略”不允许读取http://www.dailymotion.com/embed/video/x28j5hv上的远程资源。(原因:CORS标头“ Access-Control-Allow-Origin”缺失)。 跨域请求被阻止:“相同源策略”不允许读取http://w
问题内容: 我正在尝试提出一个简单的跨域请求,而Firefox始终通过此错误阻止它: 跨域请求被阻止:同源策略禁止读取[url]处的远程资源。可以通过将资源移到同一域或启用CORS来解决此问题。[网址] 它可以在Chrome和Safari中正常运行。 据我所知,我已经在PHP上设置了所有正确的标头,以使其能够正常工作。这是我的服务器响应的内容 我尝试使用Angular,jQuery和基本的XMLH
我也在应用程序根目录中使用。htaccess文件。(waleedahmad.kd.io/node)。
问题内容: 所以当我尝试使用React将数据发送到后端时,我遇到了这个错误。据我了解,我需要允许后端和文件中的通信。这是我使用的一些链接: 没有“访问控制允许来源”-节点/ Apache端口问题 [Access-Control-Allow- Origin标头如何工作?]http://codingdict.com/questions/8006) 他们两个都有代码,但是没有帮助。 到目前为止,我的服务
在浏览器的沙箱环境下,默认只允许js代码请求其所属域的数据,不同域名/ip/协议,都默认禁止. 跨域所需要的是,是响应浏览器发起的OPTIONS,及真正的GET/POST, 共2个请求哦. 所需要的逻辑CrossOriginFilter已经封装好了 如何解决 nutz给出的方案非常简单,仅需要在入口方法上添加CrossOriginFilter即可 @Filters(@By(type=CrossO
跨域请求 如果某个路由或者分组需要支持跨域请求,可以使用 Route::get('new/:id', 'News/read') ->ext('html') ->allowCrossDomain(); 跨域请求一般会发送一条OPTIONS的请求,一旦设置了跨域请求的话,不需要自己定义OPTIONS请求的路由,系统会自动加上。 跨域请求系统会默认带上一些Header,包括: Acces