0

次のようにコールバックを指定する必要があるクロス ドメイン リクエストがあります。

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

jqGrid では、これを有効にする方法がわかりません。jqGrid は、URL を受け取り、クロスドメイン プロパティを指定できる $.ajax 呼び出しのラッパーです。正しい応答を提供する現在の構成:

$("#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. 

)};

firebug がリクエストに割り当てられたデフォルトのコールバック値を示しているため、「callback: 'callme'」という行は機能していないようです。ただし、このコールバックは次のように指定されます。

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

instead of

<sampleURL>?_callback=callme

jqGrid でカスタム コールバック名を指定できる方法はありますか?

4

2 に答える 2

0

jqgrid とリモート URL (クロスドメイン) にも問題がありました。それらを解決するために、私は自分のドメインで php ページを使用しました: GET パラメータを取る cross-domain.php :

これがphpページの内容です:

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

したがって、jqgrid にそのような URL を入力するには:

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

もちろん、どのサーバー言語でも実行できます。

また、同一オリジン ポリシーの問題について心配する必要はありません。

于 2013-06-12T13:36:05.220 に答える
0

主なエラーは、jqGrid に存在しないいくつかのオプションを使用していることです。jQuery.ajaxのサポートされているオプションであるcallbackcrossDomainjsonpおよびを使用しますが、 jqGridにはそのようなオプションはありません。cache

回答のデモからデモを調べた後、質問に対する回答が見つかることを願っています。

于 2012-12-12T00:07:09.167 に答える