Heim >Backend-Entwicklung >PHP-Tutorial >Javascript – Probleme mit domänenübergreifenden Anfragen

Javascript – Probleme mit domänenübergreifenden Anfragen

WBOY
WBOYOriginal
2016-10-19 10:40:511158Durchsuche

Javascript – Probleme mit domänenübergreifenden Anfragen

Mein Frontend-Code sieht so aus:
Das Backend ist in PHP geschrieben,

<code><?php
class IBaseAction extends Action
{   
public $params = array();// 所有请求的参数
    public $return = array('returnCode' =>200, 'returnDesc' => 'success'); // 返回的基础数据
    function __construct()
    {
        $this->return['serverTime'] =time();
        Log::record('传入的参数:' . var_export($_REQUEST, true),Log::DEBUG);
        $this->params = @json_decode(base64_decode(I('post.params'),true),true);
        if (!$this->params){
            $this->return['returnCode'] =100;
            $this->return['returnDesc'] = 'sign failed!';
            $this->responseJson();
        }else if(C('KEY')!=$this->params['key']){
            $this->return['returnCode'] =100;
            $this->return['returnDesc'] = 'sign failed!';
            $this->return['returnAlert'] = '密钥不正确!';
            $this->responseJson();
        }
    }

    /*
     * 检查接口传入的方式
     */
    public function checkPublicParams($interfaces) {
        $pass = false;
        $this->return['returnCode'] = 100;
        if (!I('post.')) {
            $this->return['returnDesc'] = '请求方式错误';
        } else if (!I('post.method') || !I('post.params')) {
            $this->return['returnDesc'] = '接口参数错误';
        } else if (!array_key_exists(I('post.method'), $interfaces)) {
            $this->return['returnDesc'] = '接口名错误';
        } else {
            $this->return['returnCode'] = 200;
            $pass = true;
        }
        return $pass;
    }
    protected function responseJson()
    {
        exit(json_encode($this->return));
    }
}</code>

Der unveränderte Status ist Rückgabeauthentifizierungsfehler
“{"returnCode":100,"returnDesc":sign failed!","serverTime":1476799012}"
Ich habe auch eine Änderungsmethode im Internet gefunden
Javascript – Probleme mit domänenübergreifenden Anfragen
Aber ich weiß nicht, wie ich es ändern soll

Antwortinhalt:

Javascript – Probleme mit domänenübergreifenden Anfragen

Mein Frontend-Code sieht so aus:
Das Backend ist in PHP geschrieben,

<code><?php
class IBaseAction extends Action
{   
public $params = array();// 所有请求的参数
    public $return = array('returnCode' =>200, 'returnDesc' => 'success'); // 返回的基础数据
    function __construct()
    {
        $this->return['serverTime'] =time();
        Log::record('传入的参数:' . var_export($_REQUEST, true),Log::DEBUG);
        $this->params = @json_decode(base64_decode(I('post.params'),true),true);
        if (!$this->params){
            $this->return['returnCode'] =100;
            $this->return['returnDesc'] = 'sign failed!';
            $this->responseJson();
        }else if(C('KEY')!=$this->params['key']){
            $this->return['returnCode'] =100;
            $this->return['returnDesc'] = 'sign failed!';
            $this->return['returnAlert'] = '密钥不正确!';
            $this->responseJson();
        }
    }

    /*
     * 检查接口传入的方式
     */
    public function checkPublicParams($interfaces) {
        $pass = false;
        $this->return['returnCode'] = 100;
        if (!I('post.')) {
            $this->return['returnDesc'] = '请求方式错误';
        } else if (!I('post.method') || !I('post.params')) {
            $this->return['returnDesc'] = '接口参数错误';
        } else if (!array_key_exists(I('post.method'), $interfaces)) {
            $this->return['returnDesc'] = '接口名错误';
        } else {
            $this->return['returnCode'] = 200;
            $pass = true;
        }
        return $pass;
    }
    protected function responseJson()
    {
        exit(json_encode($this->return));
    }
}</code>

Der unveränderte Status ist Rückgabeauthentifizierungsfehler
“{"returnCode":100,"returnDesc":sign failed!","serverTime":1476799012}"
Ich habe auch eine Änderungsmethode im Internet gefunden
Javascript – Probleme mit domänenübergreifenden Anfragen
Aber ich weiß nicht, wie ich es ändern soll

Für OPTIONS-Anfragen sollte die zurückgegebene HTTP-Antwort die folgenden Informationen enthalten:

1. Methoden zum Ermöglichen domänenübergreifender Anfragen

<code>Access-Control-Allow-Methods: GET,POST</code>

2. Benutzerdefinierte Header für domänenübergreifende Anfragen zulassen

Zum Beispiel eine AJAX-Anfrage

<code>Access-Control-Allow-Headers: X-Requested-With</code>

3. Quellen, die domänenübergreifende Anfragen zulassen

<code>Access-Control-Allow-Origin: *</code>

Weitere Informationen finden Sie unter:

http://www.ruanyifeng.com/blo...

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn