2013-10-14 46 views
0

我用JQuery.Ajax嘗試JQuery.Ajax在三星智能電視不顯示[增訂]

這裏是代碼如何看起來像我的web服務進行通信:

Main.onLoad = function() { 
    // Enable key event processing 
    this.enableKeys(); 
    widgetAPI.sendReadyEvent(); 
    //$("#h2Test").html("Change On Text"); 

     $.ajax({ 
        url : 'http://---.--.---.--:-----/_layouts/-----/------.asmx?op=retrieveEvents', 
        type : "POST", 
        dataType : 'json', 
        contentType : 'application/json', 
        data : { 
         url : "someURL" 
        }, 
        success : function(response) { 
         $("#h2Test").html("SUCCESS"); 
        }, 
        failure : function(response) { 
         $("#h2Test").html("FAIL"); 
        } 
     }); 
}; 

當我運行代碼,顯示文本更改而不是成功或失敗,爲什麼代碼不能成功或錯誤

+1

什麼是json.type?一個可能的原因可能是語法錯誤,你的ajax甚至沒有執行。檢查你的控制檯。 – PSL

回答

0

在移動和電視應用程序中,您應該關注「相同的域策略」,方法是使用:dataType:「jsonp 「和jsonpCallback(也聲明後者)。請看:

http://api.jquery.com/jQuery.ajax/

Callback function for JSONP with JQuery ajax

+0

什麼是jsonp?它有什麼作用? –

+0

瀏覽器有一個安全的概念:「相同的域名政策」,它限制你的腳本到相同的域名,所以你的電視或手機應用程序將有這種限制,因爲你的web服務域www.somedomain.com和你的應用程序域(本地)是不同的。 jsonp是解決這個問題的一種技術,並允許您進行跨域請求。見:http://stackoverflow.com/questions/12096867/same-domain-policy-jquery –

+0

非常好的解釋在這裏:http://stackoverflow.com/questions/2067472/what-is-jsonp-all-about –

1

根據http://api.jquery.com/jQuery.ajax/你應該更換你的

failure: function(response) { 

error: function(response) { 

然後它可能應該達到錯誤功能。

+0

也刪除「contentType」的東西。你確定你的服務器期待「contentType」爲「application/json」嗎?常見的web apis僅使用默認的POST內容類型作爲「application/x-www-form-urlencoded; charset = UTF-8」 – imkrisna