CORS沮丧

时间:2017-03-16 16:15:00

标签: google-chrome go cors vue.js

现在已经挖了几个小时了。

我有vue.js代码:

int id;
var phonesData = new List<SelectListItem>();
if (Int32.TryParse(carrierid, out id))
{
    var phonesList = this.GetPhones(id, emailaddress); // here
    phonesData = phonesList.Select(m => new SelectListItem()
    {
        Text = m.Name,
        Value = m.PhoneID.ToString(),
    }).ToList();
    return Json(phonesData, JsonRequestBehavior.AllowGet);
}
else
   return null; // or throw an exception

后端用GO代码编写:

$(document).ready(function() {
  var vue = new Vue({
    el: '#login',
    data: {
      logged_in: false,
      username: "",
      password: "",
      csrf_token: "",
    },
    methods: {
      login: function() {
        $.ajax({
          url: apiEndpoint + '/login/', 
          type: "POST", 
          dataType: "json",
          dataType: 'json',
          data: JSON.stringify({"username": username.value, 
          "password": password.value, 
          "csrf_token": this.csrf_token}), 
          success: (data) => {
            alert(1);
          }
        });
        return false;
      },
      getCsrfToken: function() {
        $.ajax({
          url: apiEndpoint + '/login/', 
          success: (data) => {
            this.csrf_token = data["Csrf_Token"];

            if(data["User_id"] !== "") {
              this.logged_in = true;
            }
          }
        });   
      }
    }
  });

  vue.getCsrfToken();
});

我的服务器处理程序:

w.Header().Set("Access-Control-Allow-Origin", "*")
w.Header().Set("Access-Control-Allow-Headers", "Content-Type")
w.Header().Set("Access-Control-Allow-Methods", "POST, GET, OPTIONS")

fmt.Printf("METHOD - %s\n", r.Method)
if r.Method == "POST" {

浏览器发送OPTIONS请求女巫很好。然后它发送一个POST请求并得到400,错误的请求,但后端甚至没有注册请求(fmt.Print ..)。

为什么我的帖子请求获得400?

谢谢!

编辑:PICS !!

stuff

stufff2

1 个答案:

答案 0 :(得分:-1)

您应该针对像https://www.posttestserver.com/之类的测试服务器测试您的代码,然后您可以转到http://posttestserver.com/data/并查看您发送的请求,因为它可能没有发送您认为的请求。