代码之家  ›  专栏  ›  技术社区  ›  Abhishek Prakash

angularjs中重复的ajax调用

  •  2
  • Abhishek Prakash  · 技术社区  · 9 年前

    我正在使用 express-jwt 构建restful api。现在,客户端正在进行重复的ajax调用,对于第一个调用,发起者是angularjs,而对于第二个调用,启动器是其他人。第一个得到204作为响应码,第二个得到200作为响应码。我试图调试以获取此重复请求的源,但无法。

    Screen shot

    下面是带有204状态代码的标题的详细信息

    204 response code

    下面是带有204状态代码的标题的详细信息

    200 response code

    有人能提出问题所在吗?

    2 回复  |  直到 4 年前
        1
  •  5
  •   Akash    9 年前

    第一个调用是OPTIONS类型。这是一个飞行前调用,如果页面和api不在同一个域中,浏览器将发送该调用。

    此次通话的目的是处理CORS。后端通常需要发送允许的请求方法类型(GET、POST等)。如果返回的请求类型中包含所需的请求类型,则浏览器将发送真正的调用。

    下面是响应头的示例。 enter image description here

    你可以出于任何意图和目的而忽略它。它不包含任何通常有用的有效载荷或返回数据。

    看看 AJAX in Chrome sending OPTIONS instead of GET/POST/PUT/DELETE? 了解更多信息。

        2
  •  2
  •   Anil Talla    9 年前

    这两个请求不同,一个是 OPTIONS 另一个是 GET .

    对于跨域请求,将内容类型设置为除 application/x-www-form-urlencoded , multipart/form-data text/plain 将触发浏览器发送预检 选项 请求到服务器。

    当请求方法 选项 ,则需要退出而不进行处理。