2013-01-10 26 views
12

Đây là cuộc gọi ajax của tôi.Lỗi:: jQuery không được gọi là

$.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); 
    } 
}); 

Phản hồi từ ví dụ url của tôi

{ 
    "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 
} 

tôi đang cố gắng để thực hiện cuộc gọi miền chéo và nhận được lỗi

jQuery180014405992737595236_1357861668479 was not called 

Cập nhật

Vâng tôi đã cố gắng sử dụng da taType: "json" nhưng tại thời điểm đó nhận được lỗi

No Transport 
+3

Trang từ xa của bạn có phát ra phản hồi JSONP được định dạng đúng không? 'callback ({/ * json * /})' – Matt

+0

Yep, phản hồi là JSON chứ không phải JSONP. –

+0

@ FelixKling tôi đã thử sử dụng dataType: json nhưng nhận được lỗi "No Transport" – iJade

Trả lời

8

Điều đó cho thấy lỗi mạng hoặc điểm kết thúc không trả về phản hồi JSONP.

(Tôi đoán lỗi tra cứu DNS tôi nhận được khi kiểm tra vì đó không phải là URL thực của bạn (vui lòng sử dụng example.com cho URL ví dụ, đó là những gì nó có) nếu không, thì đó là vấn đề).

+3

+1 và +1 một lần nữa (nếu tôi có thể) cho nhận xét 'example.com'! ;-) –

+0

Xin lỗi vì dat, không url thật của tôi nó ..... tôi đã cập nhật có một cái nhìn – iJade

+1

Đó là thiết bị đầu cuối không phục vụ jsonp đúng, nếu nó xảy ra lỗi mạng ông sẽ nhận được mã lỗi theo để thay thế. – Christoph

4

Đó là phản hồi JSONP không chính xác. Máy chủ cần xử lý đối số callback=nameOfCallbackFunction của yêu cầu GET và phân phối nó dưới dạng trình bao bọc chức năng.

Câu trả lời đúng thì sẽ giống như sau:

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

vì vậy u có nghĩa là đó không phải là một phản hồi jsonp nhưng json response.I đã thử với json dataType nhưng nhận được lỗi No Transport. Tôi đã cập nhật câu hỏi – iJade

+0

@jade Đây có phải là cuộc gọi crossdomain không (chỉ đến một vị trí khác với trang của bạn). Nếu có, bạn chỉ có thể sử dụng JSONP hoặc sử dụng [CORS] (http://enable-cors.org/) để ngăn chặn các lỗi [SOP] (http://de.wikipedia.org/wiki/Same-Origin-Policy) – Christoph

+0

thực sự tôi không biết liệu tên miền chéo của nó có bị lỗi hay không. không sử dụng tên miền chéo "Không Giao thông vận tải", vì vậy chỉ cần googled và một số đề xuất sử dụng tên miền chéo sẽ giải quyết vấn đề – iJade

1

Tôi biết đây là một chủ đề cũ nhưng đã phải vật lộn để có được một chéo ajax miền ví dụ làm việc. Tôi đọc nhiều về việc sử dụng dataType: jsonp và support.cors = true nhưng có 200 - thành công nhưng là một parseerror.

sau đó tôi đọc trong chủ đề này về việc sử dụng một hay khác. Sau đó tôi đã thay đổi dataType: thành json và để lại support.cors = true và nó hoạt động. Cuối cùng. . .

này có thể giúp ai đó gặp vấn đề tương tự.

-1

Lý do tại sao bạn có lỗi JQueryXXXX là bởi vì có một lỗi trong url bạn đang gọi, bạn cần phải giới thiệu, do đó trông giống như "callback =?":

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

Cũng Nếu bạn gọi một .php nhớ:

header('Content-Type: application/json; charset=utf8'); 
Các vấn đề liên quan