読者です 読者をやめる 読者になる 読者になる

Code Lab

CakePHP/Python/Swiftを勉強中... 好きなことで生きて行く!

ajax使ったらクロスドメイン問題にぶち当たった。

jQuery CakePHP 備忘録

f:id:natuta:20170201203716p:plain
わお。いままで外部からつなぐことなかったから気づかなかったけど、こんなのあるんだね!

XMLHttpRequest cannot load http://XXX.XXX/XXX. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://XXX.XXX' is therefore not allowed access.

解決法は2種類。

headerに許可するやついれて回避する方法

PHP

header("Access-Control-Allow-Origin: *");

CakePHP3ではこんな感じ。

$this->response->header("Access-Control-Allow-Origin: *");

それかこれ、リクエストとレスポンスオブジェクト

次に、JSONPで回避する方法

    $.ajax({
        url: 'https://XXXXX.XXX/XXXXX.json?callback=user',
        dataType: "jsonp",
        jsonpCallback: 'collback',
        success: function(data){
            console.log(data);
        }
    });

jsonpCallbackがこのカッコの先頭にくっついて、カッコのなかにJSONがはいる。

collback(JSONがはいります。)

正直いって、あんま理解してない。
JSONP自体使ったことないからなぁ... もう少し調べてみる必要ありですな。