>백엔드 개발 >PHP 튜토리얼 >javascript - 도메인 간 요청 문제

javascript - 도메인 간 요청 문제

WBOY
WBOY원래의
2016-10-19 10:40:511158검색

javascript - 도메인 간 요청 문제

제 프론트엔드 코드는 이렇습니다.
백엔드는 php로 작성했습니다.

<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>

변경되지 않은 상태는 반품 인증 실패
“{"returnCode":100,"returnDesc":"sign failed!","serverTime":1476799012}"
저도 인터넷에서 수정 방법을 찾았습니다.
javascript - 도메인 간 요청 문제
그런데 수정하는 방법을 모르겠어요

답글 내용:

javascript - 도메인 간 요청 문제

제 프론트엔드 코드는 이렇습니다.
백엔드는 php로 작성했습니다.

<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>

변경되지 않은 상태는 반품 인증 실패
“{"returnCode":100,"returnDesc":"sign failed!","serverTime":1476799012}"
저도 인터넷에서 수정 방법을 찾았습니다.
javascript - 도메인 간 요청 문제
그런데 수정하는 방법을 모르겠어요

OPTIONS 요청의 경우 반환된 HTTP 응답에는 다음 정보가 포함되어야 합니다.

1. 도메인 간 요청을 허용하는 방법

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

2. 교차 도메인 요청에 대한 사용자 정의 헤더 허용

AJAX 요청 등

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

3. 도메인 간 요청을 허용하는 소스

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

자세한 내용은 다음을 참조하세요.

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

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.