zoukankan      html  css  js  c++  java
  • 接口一次请求会同时执行两次

    因为在进行跨域请求的时候,前端会先options请求接口,去试探是否支持跨域,支持跨域之后,在进行正式的post请求添加。

    解决方法:

    (我的路由写的是any 没有请求限制,请求接口的时候post限制post请求 get限制get请求就行了)

    请求做限制,options请求不执行接口功能。

    if (strtolower($_SERVER['REQUEST_METHOD'] == 'options')){
    	exit();
    }
    

    首先,跨域请求分为两种,一种是简单请求,即get请求和post请求(不带多余的请求头),这种情况下,浏览器会直接请求,在有允许跨域的头的情况下,予以显示。(这里并不是说没有跨域头服务器就不返回数据了,数据是照常返回的,但是浏览器拦截了返回数据。)
    另一种呢是复杂请求,即非getpost请求,或者是有了自定义头的请求。这种情况下,浏览器会首先发送一个options请求(预请求),来确是否允许跨域。在服务器返回的跨域条件都允许之后,浏览器才会发送正式请求。

    debug_backtrace() 打印栈轨迹

    route:list 看了一下,有没有 options 请求

    php artisan route:list --method options                                
    
  • 相关阅读:
    (转)大数据量高并发的数据库优化与sql优化
    SQL Server查询优化方法参考(转)
    CString和LPCSTR区别(转)
    delphi读写剪贴板的一些参考
    Delphi和VC混合编程总结
    Delphi 一些函数解释
    伪共享与volatile
    happens-before原则
    递归与回溯-排立组合
    二叉树
  • 原文地址:https://www.cnblogs.com/caibaotimes/p/15407225.html
Copyright © 2011-2022 走看看