
2日程、色々と試したのですが、どうしても自分で解決できそうにないので
お世話になりたいと思い質問させて頂きました。
XMLHttpRequestを使用し、サーバーと非同期通信を行っているのですが
ChromeとFireFoxの場合、戻り値のstatusが0になり、サーバーからのレスポンスデータを
取得する事ができません。IEでは7 ~ 9まで正常に動作する事を確認しております。
(環境)
クライアントOS:Windows7 Professinal
サーバーOS:Windows7 Professinal
Webサーバー:IIS7.5
ブラウザ:Google Chrome 16.0.912.77 m, FireFox 10.0.1
(クライアント側プログラム)
function requestMain(param)
{
// サーバー名はxxxにさせて頂きました。
var url = "http://xxx.xxx.xxx.xxx/app/xhr.cgi?" + param;
var obj = createHttpRequest();
obj.open("GET", url, true);
obj.setRequestHeader("If-Modified-Since", "Thu, 01 Jun 1970 00:00:00 GMT");
ojb.onreadystatechange = function()
{
if (obj.readyState==4)
{
alert(obj.status); // ← ここが0に。IEだと200が返ってきます。
alert(obj.responseText); // ← IEの場合予期したデータがきます。Chrome/FF
// ともに空です。
}
}
httpoj.send("");
}
function createHttpRequest()
{
if(window.ActiveXObject)
{
try
{
return new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
return new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e2)
{
return null;
}
}
}
else if(window.XMLHttpRequest)
{
return new XMLHttpRequest();
}
}
(サーバー側)
static void main(string[] args)
{
string rtnStr = "HTTP/1.0 200 OK\n";
rtnStr += "<head>\n";
rtnStr += "Access-Control-Allow-Origin:*\n" // ← クロスドメイン対策???
rtnStr += "Content-Type: text/html; charset=UTF-8;\n;
rtnStr += "</head>\n\n";
rtnStr += "<body>test is</body>";
Console.WriteLine(rtnStr);
}
試しに、prototype.jsのAjax.Requestを使用しても結果は同じでした。
後、プログラムでなく、ブラウザーのURL覧からCGIをコールするとtest isが表示されます。
※ CGIはC#で書いています。ASP.NETがあるので意味がないのですが
すみません。^^;
過去にも似たような質問をされた方がいらっしゃったのですが
結局クロスドメインの問題じゃない?とか回答がついてないとかで
答えがわかりませんでした。英語サイトにはそれなりに情報があるみたいですが
読めないのでよくわかりません ;_;
(調べろと言われればそれまでなのですが。。。)
組み込み系や、C/S・スタンドアロンでのWindowsアプリはそれなりの経験を
持っているのですが、Web系は今回初めてで、やり始めて丁度10日になります。
ですので、トンチンカンなご質問をしているかもわかりませんが、
どうぞよろしくお願いいたします。
P.S 最近html, css, javascriptがお試し程度にわかり4、5ページ画面遷移した
簡単なクライアント側アプリを作れる程度です。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
HTTP ヘッダと HTML の HEAD 要素が頭の中で混ざってぐちゃぐちゃになっちゃってる感じ。
| HTTP/1.0 200 OK
| <head>
| Access-Control-Allow-Origin:*
| Content-Type: text/html; charset=UTF-8
| </head>
|
| <body>test is</body>
↑ではなくて↓を返すと大丈夫かも。
| HTTP/1.0 200 OK
| Access-Control-Allow-Origin:*
| Content-Type: text/html; charset=UTF-8
|
| <html>
| <head><title>test is</title></head>
| <body><p>test is</p></body>
| </html>
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
自動ジャンプでフォームデータ...
-
getElementsByNameで要素が取得...
-
ひとつのHTMLファイル内にcanva...
-
JavaScriptでiframeの内容を「...
-
クリックすると別の文章を表示する
-
SCRIPT5007: 未定義または NULL...
-
出荷予定日を表示するJavaスク...
-
JavaScript でキーを送る
-
bodyタグのfocus
-
ナンバーズ 4 の数列をランダム...
-
乱数を一定時間毎に表示させた...
-
キーを押している間の時間を計...
-
ajax で読み込みを途中で止めた...
-
JavaScriptでのEnterキーとAlt+...
-
フォーカス移動抑止について
-
Backbone.js イベントが効かない
-
javascript isFinite
-
初心者javascript ウィンドウサ...
-
プログラミング初心者です。ど...
-
ページ全体を検索して特定文字...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
function の return 値を表示し...
-
JavaScriptでiframeの内容を「...
-
SCRIPT5007: 未定義または NULL...
-
getElementsByNameで要素が取得...
-
キーを押している間の時間を計...
-
複雑な再帰(?)に関して
-
乱数を一定時間毎に表示させた...
-
JavaScriptでのEnterキーとAlt+...
-
javascriptでtextareaの文字列...
-
フォーカス移動抑止について
-
iframe内に表示するページを5分...
-
イメージ(画像)の上に重ねたテ...
-
ウィンドウのタイトルを変えたい
-
onmouseoverのクラス指定
-
クリックすると別の文章を表示する
-
JavaScriptについての質問です。
-
出荷予定日を表示するJavaスク...
-
bodyタグのfocus
-
JavaScript でキーを送る
-
マウスクリックした地点のテキ...
おすすめ情報