代码之家  ›  专栏  ›  技术社区  ›  szpic

http post在$时返回错误。ajax不

  •  0
  • szpic  · 技术社区  · 8 年前

    我有jquery ajax查询:

    var data2 = "data"
    var ajaxOptions2 = {
        type: "post",
        url: "http://localhost:8050/adapter/interface",
        data: data2,
        dataType: "json",
        success: onSuccess,
        error: onError,
        processData: false,
        contentType: "application/json; charset=UTF-8"
    };
    $.ajax(ajaxOptions2);
    

    这个帖子请求工作正常

    我试着把它改写成angular2 http。职位:

    let bodyString = "data";
    let headers = new Headers({ 'dataType': 'json', 'contentType': 'application/json; charset=UTF-8' });
    let options = new RequestOptions({ headers: headers, method: RequestMethod.Post});
    that.http.post(that.url, bodyString, options)
        .map(that.extractData)
        .catch(that.handleError)
        .subscribe(data => { console.log("test")});
    

    XMLHttpRequest cannot load http://localhost:8050/adapter/interface. Request header field dataType is not allowed by Access-Control-Allow-Headers in preflight response.
    

    你能告诉我为什么jquery-ajax可以工作,但是我的http。发布dont?

    1 回复  |  直到 8 年前
        1
  •  2
  •   Patrick Kelleter    8 年前

    问题就是错误消息所说的。 在post请求中,您正在设置标题“dataType”,这显然是服务器不允许post或OPTIONS请求的。 您没有在ajax请求中设置此标头。 如果你想让它工作,你要么删除标头,要么重新配置你的服务器,以接受这个标头。

    推荐文章