2013-01-10 52 views
12

這是我的ajax調用。從我的例子網址錯誤:: jQuery不叫

{ 
    "response": [{ 
     "attributes": { 
      "type": "enge", 
      "url": "/services/data/v24.0/sobjects/Challenge__c/a0GZ0000005Vvh4MAC" 
     }, 
     "name": "Really", 
     "end_date": "2013-02-07T15:26:00.000+0000", 
     "total": 350.0, 
     "registered_members": 0.0, 
     "id": "30", 
     "type": "Design", 
     "id": "a0GZ0000005Vvh4MAC", 
     "start_date": "2012-11-19T16:52:00.000+0000", 
     "description": "This is my really cool challenge", 
     "remaining_days": 28.0, 
     "categories__r": [{ 
      "attributes": { 
       "type": "Category__c", 
       "url": "/services/data/Category__c/a08Z0000000RNI2IAO" 
      }, 
      "id": "0RNI2IAO", 
      "display_name": "Andy" 
     }, { 
      "attributes": { 
       "type": "Category__c", 
       "url": "/services/Category__c/a08Z0000000RNI3IAO" 
      }, 
      "id": "a0O", 
      "display_name": "ADR" 
     }] 
    } 

    }], 
    "count": 1 
} 

我試圖做一個跨域調用,並得到錯誤

$.ajax({ 
    type: "GET", 
    url: "http://example.com/v1/search?keyword=r", 
    dataType: "jsonp", 
    crossDomain: true, 
    success: function (responseString) { 
     alert(responseString); 
    }, 
    error: function (xhr, errorType, exception) { 
     var errorMessage = exception || xhr.statusText; 
     alert(errorMessage); 
    } 
}); 

響應

jQuery180014405992737595236_1357861668479 was not called 

更新

嗯,我試圖使用da taType:「json」,但在此時出現錯誤

No Transport 
+3

您的遠程頁面是否發出正確形成的JSONP響應? '回調({/ * json * /})' – Matt

+0

是的,響應是JSON,而不是JSONP。 –

+0

@FelixKling以及我嘗試使用dataType:json,但得到錯誤「無運輸」 – iJade

回答

8

這表明網絡錯誤或終點不返回JSONP響應。

(我猜測我在測試時得到的DNS查找失敗是因爲這不是您的真實網址(如果沒有,請使用example.com作爲示例網址,它就是這樣),那就是您的問題)。

+3

+1和+1(如果我可以)爲'example.com'註釋! ;-) –

+0

對不起dat,它不是我的真實網址.....我已更新了看看 – iJade

+1

這是端點沒有提供正確的jsonp,如果這是一個網絡錯誤,他會得到相應的錯誤代碼。 – Christoph

4

這是一個不正確的JSONP響應。服務器需要處理GET請求的callback=nameOfCallbackFunction參數並將其作爲函數包裝器提供。

正確的響應,那麼應該是這樣的:

nameOfCallbackFunction({"yourjson": "here"}); 
+0

還是你的意思是這不是一個JSONP響應,但JSON response.I試圖用JSON但的dataType沒有得到交通運輸error.I已經更新問題 – iJade

+0

@jade這是一個跨域調用(指向一個不同的位置在您的網頁來自)如果是的話,你只能使用JSONP或使用[CORS(HTTP:/? /enable-cors.org/),以防止[SOP(http://de.wikipedia.org/wiki/Same-Origin-Policy)錯誤。 – Christoph

+0

以及實際上我不知道它的跨domain.I了,而一個錯誤不使用跨域「不傳輸」,所以只是一派,一些使用跨域就解決 – iJade

1

我知道這是一個古老的線程,但一直在努力獲得一個跨域AJAX例如工作。我讀了很多關於使用dataType:jsonp和support.cors = true的知識,但獲得了200個成功但是一個parseerror。

然後我在這個線程中閱讀關於使用一個或另一個。然後,我將dataType:更改爲json,並將support.cors = true並使其運行。最後。 。 。

這可能會幫助遇到同樣問題的其他人。

-1

爲什麼你錯誤的原因JQueryXXXX是因爲在您所呼叫的URL錯誤,您需要引入,所以看起來像「回調=?」:

"http://example.com/v1/search?callback=?keyword=r" 

此外,如果你呼叫.php記住:

header('Content-Type: application/json; charset=utf8');