C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[7]: javascriptがローカルでは成功するが外部では失敗する


(過去ログ 42 を表示中)

[トピック内 8 記事 (1 - 8 表示)]  << 0 >>

■21943 / inTopicNo.1)  javascriptがローカルでは成功するが外部では失敗する
  
□投稿者/ SS (1回)-(2008/07/12(Sat) 17:42:10)

分類:[JavaScript] 

javascriptがローカルでは成功するが外部では失敗する

HTMLからjavascript,ajaxを利用して表示を行っているのですが、ローカル環境(c:\**\test.html)でみるとちゃんと(エラーなし)見え、
http://***/test.htmlにすると

ライン:46
文字:2
エラー:書き込みできません。
コード:0

URL:http://***/test.html

となって表示することができません。
今回の修正をいれる前はローカルでも外からでも見えていました。

原因がスクリプトのにあるのかwebサーバー(windown版Apach2.2)にあるのか切り分ける方法はありますでしょうか?
また、サーバーだとするとApachの設定どこを直せばいいでしょうか?

なお、webサーバーは自宅サーバーで、DDNSを利用して公開しています。


以上、よろしくお願いします




引用返信 編集キー/
■22004 / inTopicNo.2)  Re[1]: javascriptがローカルでは成功するが外部では失敗する
□投稿者/ Jitta (492回)-(2008/07/14(Mon) 22:54:28)
Jitta さんの Web サイト
No21943 (SS さん) に返信

 紙を切って6面体のさいころを作っていたのですが、20面体のさいころが必要になりました。そこで、6面体と同じように作ったのですが、できません。紙に問題があるのか、設計に問題があるのか、どうすれば切り分けができるでしょう?


 おそらく、必要な情報を提示すれば、上記の質問に答えていただけると思います。
 しかし、あなたのされている質問にあわせて、解決に必要な情報を削りました。そのため、答えることができない質問になっていると思います。
 上記の質問に答えるためには、どんな情報が必要だと思われますか?おそらく、「どんな設計図を書いたのか見せて欲しい」とお考えになると思います。


 あなたの問題を解決するのに必要な情報も同じです。どのようなスクリプトを、どのように変更したのでしょう?

引用返信 編集キー/
■22075 / inTopicNo.3)  Re[2]: javascriptがローカルでは成功するが外部では失敗する
□投稿者/ かつのり (2回)-(2008/07/15(Tue) 15:49:17)
どのコードで問題になっているんでしょうか。
IEで「書き込みできません」というエラー関連は、
ゾーンとクロスドメインによる問題で発生することが多いです。

ローカルゾーンではクロスドメインでもOKでも、
インターネットゾーンではクロスドメインはNGです。
ゾーンとは、IEのステータスバーにインターネットとかマイコンピュータと表示されていますよね。

まずは、問題となっている箇所のコードを晒してみては?

引用返信 編集キー/
■22078 / inTopicNo.4)  Re[3]: javascriptがローカルでは成功するが外部では失敗する
□投稿者/ ちゃっぴ (135回)-(2008/07/15(Tue) 16:00:12)
ちゃっぴ さんの Web サイト
IE の version によってここら辺大きく違うんですけどね。
引用返信 編集キー/
■22354 / inTopicNo.5)  Re[4]: javascriptがローカルでは成功するが外部では失敗する
□投稿者/ SS (2回)-(2008/07/18(Fri) 17:28:36)
>上記の質問に答えるためには、どんな情報が必要だと思われますか?おそらく、「どんな設計図を書いたのか見せて欲しい」とお考えになると思います。

失礼しました。全く持ってその通りです。

>あなたの問題を解決するのに必要な情報も同じです。どのようなスクリプトを、どのように変更したのでしょう?
以下のようにしております

・修正前
function showdate(year, month){
	document.write("year年 month月") ;
}

・修正後
var xmlhttp = null;

 try {
	xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
 } catch (e) {
	try {
	 xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
	} catch (E) {
	 xmlhttp = null;
	}
 }

if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
 try {
	xmlhttp = new XMLHttpRequest();

 } catch (e) {
	xmlhttp=null;
 }
}

function showdate(year, month){

	if(!xmlhttp) return;

	xmlhttp.open("GET", "http://***.jp/cgi/aaa.cgi?y="+year+"&m="+month, true); 
	xmlhttp.onreadystatechange = function() {
		if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
			var data = xmlhttp.responseText.split(/,/);

			//処理(変数いろいろ設定)

			//最大回と同じ=リンクは前だけ
			if (Number(data[0]) == Number(data[1])) {
				document.write("<p>前</p>") ;
				document.write("year年 month月") ;
			}
			//最初ならリンクは次だけ
			else if (Number(data[0]) == 1) {
				document.write("year年 month月") ;
				document.write("<p>次</p>") ;
			}
			//前後のリンクあり
			else {
				document.write("<p>前</p>") ;
				document.write("year年 month月") ;
				document.write("<p>次</p>") ;
			}
		}
	}
	xmlhttp.send(null);
}

−以上−
エラーの出ている行は、行番号からおそらくxmlhttp.openだと思います

なお、cgiのあるサーバーとhtmlおいてあるサーバーは違います。


引用返信 編集キー/
■22369 / inTopicNo.6)  Re[5]: javascriptがローカルでは成功するが外部では失敗する
□投稿者/ ま (81回)-(2008/07/19(Sat) 00:21:24)
ajaxは自サイトを越えたアクセスは制限により出来ません。

やる方法自体はあるようですが、

http://labs.unoh.net/2006/10/dojoioscriptsrcioajax.html

ここでみてくだされ。

ローカルでもサーバーおったてた状態なら失敗するはずです。

引用返信 編集キー/
■22484 / inTopicNo.7)  Re[6]: javascriptがローカルでは成功するが外部では失敗する
□投稿者/ かつのり (4回)-(2008/07/24(Thu) 11:33:53)
私が書いたとおりの問題っぽいですね。

基本的に一般的なブラウザによるXMLHttpRequestの類は、
現バージョンのものではクロスドメインでのアクセスが、
大抵制限付か、できないかのどちらかです。

昔からある解決方法として、同一ドメイン内にAjaxのプロキシを用意し、
スクリプト → 同一ドメイン内のプロキシ → 他所のサイト
とやるか、データ交換フォーマットをJSON形式に限って、JSONPでやり取りすると言う方法があります。

簡単に言えば、クロスドメインでのAjaxは諦めましょう。
引用返信 編集キー/
■22506 / inTopicNo.8)  Re[7]: javascriptがローカルでは成功するが外部では失敗する
□投稿者/ SS (1回)-(2008/07/24(Thu) 19:21:17)
> ajaxは自サイトを越えたアクセスは制限により出来ません。
>
>やる方法自体はあるようですが、
>
>http://labs.unoh.net/2006/10/dojoioscriptsrcioajax.html
>
>ここでみてくだされ。
>
>ローカルでもサーバーおったてた状態なら失敗するはずです。

No22484 (かつのり さん) に返信
> 私が書いたとおりの問題っぽいですね。
>
> 基本的に一般的なブラウザによるXMLHttpRequestの類は、
> 現バージョンのものではクロスドメインでのアクセスが、
> 大抵制限付か、できないかのどちらかです。
>
> 昔からある解決方法として、同一ドメイン内にAjaxのプロキシを用意し、
> スクリプト → 同一ドメイン内のプロキシ → 他所のサイト
> とやるか、データ交換フォーマットをJSON形式に限って、JSONPでやり取りすると言う方法があります。

ありがとうございました。自分の知識の無さを痛感しました。

> 簡単に言えば、クロスドメインでのAjaxは諦めましょう。

すっぱりあきらめました。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -