为了账号安全,请及时绑定邮箱和手机立即绑定

跨域请求被阻止

跨域请求被阻止

Go
一只斗牛犬 2021-07-25 20:56:21
所以我有这个 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 是非法的。
查看完整描述

3 回答

?
aluckdog

TA贡献1847条经验 获得超7个赞

您必须将此代码放在 application.rb 中


config.action_dispatch.default_headers = {

        'Access-Control-Allow-Origin' => '*',

        'Access-Control-Request-Method' => %w{GET POST OPTIONS}.join(",")

}


查看完整回答
反对 回复 2021-08-02
  • 3 回答
  • 0 关注
  • 222 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信