2012-12-11 35 views
0

我有一個需要回調被指定爲如下jqGrid的跨域請求提供定製的回調名稱

http://<server>:<port>/../../abc?_callback=<callbackName> 

隨着jqGrid的跨域請求,我不知道如何去實現這一點。 jqGrid是$ .ajax調用的包裝器,它接受url並允許您指定crossdomain屬性。

$("#list").jqGrid({ 
url:'<sample cross domain URL>', 
callback: 'callme', 
mtype: 'GET', 
crossDomain: true, 
datatype: 'jsonp', 
jsonp: true, 
cache: true, 
....... // other grid properties to load the layout for this dynamic data. 

)}; 

行「回調:‘呼我’」似乎並沒有工作,因爲螢火蟲顯示分配給該請求的默認值的回調我現在的配置提供了正確的反應。但是,此回調被指定爲

<sample URL>?callback=jqueryXXX...X 

instead of 

<sampleURL>?_callback=callme 

jqGrid允許您指定自定義回調名稱嗎?

回答

0

你的主要錯誤是你使用了一些jqGrid中不存在的選項。您可以使用callbackcrossDomainjsonpcache這些支持的選項爲jQuery.ajax,但jqGrid中沒有這樣的選項。

我希望您在檢查the answeranother one的演示後,在您的問題中找到答案。

0

我也有一些問題與jqgrid和遠程URL(跨域)。 解決這些問題,我用我的域名一個PHP頁面:一個使用GET參數跨domain.php:

這裏是PHP頁面的內容:

<?php 
    print(file_get_contents($_GET['url'])); 
?> 

因此,填補一個具有這樣的URL的jqgrid:

jQuery("#jqgrid_table_id").jqGrid({ 
    url : <?php print("'cross-domaine.php?url=" . urlencode('http://www.example.com/my_json_webservice.php') . "'"); ?>, 
    ... 
}); 

它工作的很好,當然它可以用任何服務器語言完成。您可以不必擔心same origin policy問題。