親愛なる私は奇妙な問題を抱えています。
私のターゲットは次のとおりです。サイトabc.comは ajax ' POST/GET ' リクエストをサイトxyz.comに送信します
xyz.comはPHP 経由でCOOKIEを作成し、 それを出力します。
print $_COOKIE["rand_user_id"];
そのため、サイトabc.comは「 xhr.responseText 」を介して印刷されたテキストを読み取ります。
PS: ページが更新された場合でも、xhr.responseText は同じテキストを出力します。
問題 :すべての但し書きの説明は問題なく機能します
しかし、JavaScript は Content TEXT を出力できるようにしたいのです!
そしてxhr.statusは0 を返します !!!!
HTTPAnalyze を介して応答を盗聴すると、responseText の内容に TEXT が表示されます。HTTPAnalyze プログラムの応答コードは 200 です。
ご意見をお聞かせください
私のコードは次のとおりです。
クライアント側
<script>
window.onload = function(){
var xhr = new XMLHttpRequest();
xhr.open("GET", "http://www.adriper.com/setcookie.php", true);
xhr.onreadystatechange = function(){
if ( xhr.readyState == 4 ) {
if ( xhr.status == 200 ) {
document.body.innerHTML = "Random code is: " + xhr.responseText;
} else {
document.body.innerHTML = "ERROR Number :"+xhr.status;
}
}
};
xhr.withCredentials = true;
xhr.send(null);
};
</script>
サーバー側は次のとおりです。
PHP
<?
if(!isset($_COOKIE["rand_user_id"]))
{
$val = md5(rand(111,999));
setcookie("rand_user_id", $val , time()+60*60*24*30, '/');
print $_COOKIE["rand_user_id"];
}else{
print $_COOKIE["rand_user_id"];
}
?>
.htaccess
Header add Access-Control-Allow-Origin "*"
Header add Access-Control-Allow-Headers "origin, x-requested-with, content-type ,accept"
Header add Access-Control-Allow-Methods "PUT, GET, POST, DELETE, OPTIONS"
Header add Access-Control-Allow-Credentials: true
HTTP レスポンス
GET /setcookie.php HTTP/1.1
Host: www.adriper.com
User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:18.0) Gecko/20100101 Firefox/18.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: http://localhost/mouse/Untitled-1.html?w
Origin: http://localhost
Cookie: rand_user_id=m3zwy_pomRVe1FovfsOXBLJvUyw_lnA6MWMjot1lSGtXB3MwGXJlR0d2afbxwBWe
Connection: keep-alive
オプション
HTTP/1.1 200 OK
Server: nginx
Date: Tue, 22 Jan 2013 00:55:30 GMT
Content-Type: text/html
Connection: keep-alive
X-Powered-By: PHP/5.2.17
Access-Control-Allow-Origin: *
Access-Control-Allow-Headers: origin, x-requested-with, content-type ,accept
Access-Control-Allow-Methods: PUT, GET, POST, DELETE, OPTIONS
Access-Control-Allow-Credentials: true
Vary: Accept-Encoding
Content-Encoding: gzip
Content-Length: 52