2012-01-01 8 views
0

JavaScriptからWebから動的コンテンツを呼び出すページを作成していて、明らかにSOPサーバー上で呼び出しをチェックする必要がありますが、実際には動作しますが、データにアクセスすることはできません。私は本当にそれが可能かどうかを知りたいです。javascript(no var)を使用してjsonオブジェクトにアクセスする - ファイル内で動的に呼び出される(実験)

以下のコードは、ファイルへのURLを追加します。

<script src="http://theSite.com/?query=userInput&othercode" type="application/json" id="special"></script> 

今問題:

var url = 'http://theSite.com/?query=' + userInput + '&othercode'; 
var script = document.createElement('script'); 
script.setAttribute('src', url); 
script.setAttribute('type', "application/json"); 
script.setAttribute('id', "special"); 
document.getElementsByTagName('body')[0].appendChild(script); 

これは私のHTMLに下記の追加、私は結果のデータにアクセスするにはどうすればよい ? JSONスクリプトを取得しましたが、Javascriptの変数に接続する方法や使用方法はわかりません。

コードは、この基本的な形式に到着:

{"count":5,"results":[{"name":"value","id":"value2", ..... }], ... "code":200} 

はどうやってデータにアクセスしたり、それを変数に割り当てていますか?

(私はまだjQueryを試していないし、おそらくもっと簡単だろうが、誰でもこのコードを手助けできれば、これはjQueryでこれをすべてやり直すのではなく素晴らしいだろう)。

答えて

1

あなたが呼んでいるサービス(theSite.com)を管理する必要があります。

dataCallback({"count":5,"results":[{"name":"value","id":"value2", ..... }], ... "code":200}); 

または、theSite.comから提供されiframe内のスクリプトを作成し、戻ってあなたの窓にその結果を伝えることpostMessageを使用:1つのオプションは、それが代わりにJSONのJSONPを返すようにすることです。

そうでなければ...まあ、SOPが防御しようとしていることを正確にやっているので、チャンスは恐ろしいAFAIKです。

もう1つのオプション:サーバにAJAXコールを発信すると、サービスコールが行われ、データが渡されます。サーバーはクライアントのように制限されていません。

+0

こんにちはアマダン、私が作っているファイルでは、私は私がtheSite.comをコントロールすることはできません。また、これはJavascriptで基本的なHTMLページであるため、サーバにアクセスできません。私はAJAXを試して、サイトを強制的にSOPの問題を持っていた:localhost/test/test.html?http://theSite.com/?que ...私はPHPスクリプトを作ってサーバー側のコードですが、データがページ上のどこにあるかを知るために、私がアクセスできる方法があるかどうかを知りたいと思っています。 (コードがダウンロードされ、JSエラーはありません)。 – Totoro

関連する問題