実装方法"クロスドメインAjaxを要請をCakePHP、jQuery?
-
20-08-2019 - |
質問
を使用していCakePHPのための私のプロジェクト、I am発生XML見方ができるよう、エサをあげたりして触れ合える(CRUD)から外部のウェブサイト.が必要な認証のCakePHPます。
基本的にしたいビュー"http://mycakeapp.com/posts/views/1.xml"から"http://www.example.com"
しかし、このエラー使用時はjQueryのajax機能: アクセス制限のURIを否定の"コード:"1012.からgooglingいうJSONPはオプションです..ばかりではありませんィケーキないと思い利用xml:(
たっての使用はiframe:it負荷最大のログイン画面で、後でログインを読み込んで現在のページ("http://www.example.com")!でも、iframe源"http://mycakeapp.com/posts/views/1.xml"
で取り組むことでこの問題。
更新: する具体的思をbookmarkletに伝えると自分のサイトを建CakePHP)、urlの代理の方法なものの提案)
解決
JSONPは間違えます。
(粉を山にして真ん中を以下のページです: http://www.ibm.com/developerworks/xml/library/x-xml2jsonphp/
他のヒント
単にプロキシスクリプトクリアしました。のAjax要求使用されているプロキシサーバスクリプトは、使用されているプロキシサーバスクリプト"の"ご希望のドメインを利用のカールをだして使用されているプロキシサーバスクリプトechoの応答からおのカールを要求します。
としてmmattaxうための最も簡単な方法は使用プロキシ記述します。
こちらはスクリプトを使っていっていたら目に留まりやすいし、別のドメインを渡すことでurlencoded proxy_urlパラメータとします。
url_proxy.php
// Is it a POST or a GET?
$url = ($_POST['proxy_url']) ? $_POST['proxy_url'] : $_GET['proxy_url'];
// Open the Curl session
$session = curl_init($url);
// If it's a POST, put the POST data in the body
if ($_POST['proxy_url']) {
$postvars = '';
while ($element = current($_POST)) {
if (key($_POST) != 'proxy_url') {
$postvars .= key($_POST).'='.$element.'&';
}
next($_POST);
}
curl_setopt ($session, CURLOPT_POST, true);
curl_setopt ($session, CURLOPT_POSTFIELDS, $postvars);
}
// Don't return HTTP headers. Do return the contents of the call
curl_setopt($session, CURLOPT_HEADER, false);
curl_setopt($session, CURLOPT_RETURNTRANSFER, true);
// Make the call
$response = curl_exec($session);
// Return the response
if (curl_errno($session)) {
$error_message = curl_error($session);
echo 'Error: '.$error_message;
} else {
echo $response;
}
curl_close($session);
?>
お場合がありますの変更にエラー処理のビットを返しの有効ビットのxmlるアプリでの解析.
この取組みなどについて、お話を私webrootウェブルートではjavascriptからのように:
function showMapLegend(baseURL, layer) {
var url = 'http://our-map-server/get-a-legend.php?layer='+layer;
var dt = new Date();
var proxy = baseURL + '/url_proxy.php?currDate='+dt.getTime()+'&proxy_url=';
url = proxy + encodeURIComponent(url);
new Ajax.Request(url, {
method: 'get',
onSuccess: function(transport) {
$('map-legend-img').src = transport.responseText;
new Effect.Appear('map-legend', {duration: 0.5});
}
});
}
の例は、javascriptの機能以上を取得するために使用されるシンプルなurl文字列から当社の地図サーバーのお気にしない失敗した場合でもonFailureなど、これは、主に試作っていらっしゃることだと思いますの考えをどのようにプロキシ記述します。
のbaseURL変数として渡され、これをベース"http://server/theappname"のようなurlアプリです。