suchen

Heim  >  Fragen und Antworten  >  Hauptteil

php - Warum leitet Laravel zweimal um?

Derzeit erstellen wir eine Webseite für die WeChat-Anmeldung unter Verwendung der von WeChat bereitgestellten Schnittstelle. Wenn Benutzer auf den Index/Index zugreifen, springen sie zu der von WeChat angegebenen URL:

function index(){
    $wxService = \App::make('App\Http\Service\WXActivityService');
    $target_url = route('Index/Activity');
    $redirect_url = $wxService->getWxRedirectUrl($target_url);
    return redirect()->intended($redirect_url);
}

Dieser Code ist sehr einfach. Er fügt lediglich die URL gemäß dem von WeChat angegebenen URL-Format zusammen und leitet dann zu dieser URL weiter ($target_url), die ich basierend auf der Redirect_uri festgelegt habe Jetzt besteht das Problem darin, dass mein Server nach der Umleitung auf meine Seite zweimal dieselbe Anfrage erhält. Könnten Sie mir bitte sagen, was mit der Cross-Site-Umleitung passiert? Ein Problem mit der Ausrichtung? Die Header-Funktion kann nicht zum Umleiten verwendet werden, was wirklich frustrierend ist ... Ich habe das Protokoll aufgezeichnet und festgestellt, dass die Indexmethode nur einmal ausgeführt wurde, aber auf $target_url zweimal zugegriffen wurde ...

曾经蜡笔没有小新曾经蜡笔没有小新2796 Tage vor1238

Antworte allen(1)Ich werde antworten

  • 滿天的星座

    滿天的星座2017-06-20 10:09:24

    检查一下,两次请求分别的 Request Method:
    因为是跨域请求,客户端发先发送一个OPTIONS 请求
    Preflighted Requests是CORS中一种透明服务器验证机制。预检请求首先需要向另外一个域名的资源发送一个 HTTP OPTIONS 请求头,其目的就是为了判断实际发送的请求是否是安全的。

    很有可能是这个问题,
    我现在用axios 作为我的网络请求库,也遇到了这个问题,跨域访问的时候 ,都会先发送一个OPTIONS请求,用来判断接下来的请求是否安全和被允许

    我现在的做法是,在index.php 入口文件中,检测,是否为OPTIONS 请求,如果是就返回一个状态
    具体代码

    if ($_SERVER['REQUEST_METHOD']=='OPTIONS') {
        header("Access-Control-Allow-Origin: *");
        header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Authorization");
        header('Access-Control-Allow-Methods: GET, POST, PUT,DELETE,OPTIONS,PATCH');
        return;
    }

    Antwort
    0
  • StornierenAntwort