質問編集履歴

1 文字校正

ikki57

ikki57 score 290

2015/10/29 17:56  投稿

jQueryのajax処理にて、クロスドメインのデータ取得時に起こるエラーについて
表題の件についてご教授頂ければと思います。下記詳細になります。
### クロスドメインのデータ取得時のエラー
![イメージ説明](ba576c631445a93a00f79ed7e3913cee.png)
##### Ajax処理
```
$.ajax({
   type: 'GET',
   url: 'http://awasete.com/showjson.phtml?u=http%3A%2F%2Fd.hatena.ne.jp%2FHexa%2F',
   dataType: 'jsonp',
   jsonpCallback: 'awasete_yomitai',
})
...
```
##### リクエスト
```
http://awasete.com/showjson.phtml
?u=http%3A%2F%2Fd.hatena.ne.jp%2FHexa%2F
&callback=awasete_yomitai
&_=1446106743870
```
意図的にtimeoutを起こす。
⇛意図的にtimeoutを起こす。
##### レスポンス
```
Method:   GET
Satus:    200
Type:     script
Initiator: jquery.js:8698
```
- リクエストタイプはスクリプト
- タイムアウトが生じていても、scriptのため、200で返ってくる
**結果、下記エラーがコンソールに出る。**
```
Uncaught TypeError:
awasete_yomitai is not a function
(anonymous function) @ showjson.phtml?u=http%3A%2F%2Fd.hatena.ne.jp%2FHexa%2F&callback=awasete_yomitai&_=1445955902222:1
```
 
- **このエラーが出ないようにするにはどうしたら良いか。**
- **そもそも出るものなのか。**
---
### 参考:同一ドメイン時のエラーの場合
![イメージ説明](405e4614c44f0cc9ed7731223a131e6b.png)
##### Ajax処理
```
$.ajax({
   type: 'GET',
   url: 'json/data.json',
   dataType: 'jsonp',
   jsonpCallback: 'cb'
})
...
```
##### リクエスト
```
http://***.com/json/data.json?callback=cb&_=1446107613641
```
同様に、意図的にtimeoutを起こす。
##### レスポンス
```
Method:   GET
Satus:    (canceled)
Type:     xhr
Initiator: jquery1.11.3.js:9663
```
- httpリクエストでエラーになる。
- 当然コンソールにはエラーは出ない。
---
以上になります。
どうぞよろしくお願い致します。
  • jQuery

    13413 questions

    jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

  • Ajax

    2224 questions

    Ajaxとは、Webブラウザ内で搭載されているJavaScriptのHTTP通信機能を使って非同期通信を利用し、インターフェイスの構築などを行う技術の総称です。XMLドキュメントを指定したURLから読み込み、画面描画やユーザの操作などと並行してサーバと非同期に通信するWebアプリケーションを実現することができます。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る