2

何かを選択しているときにコンボボックスが 1 つある単純なフォームを 1 つ作成します。関数を onchange イベントに配置して、その呼び出しを行います。

次に、このデータをjqueryを介して1つのヘルパーファイルで送信します

<script type="text/javascript">
$.noConflict();
function Searchwine(obj,str) {  
{queryString: ""+str+""}, function(data){           
    jQuery.post("http://www.site.com/search/helper/autosuggest.php", {queryString: ""+str+""}, function(data){          
        if(data.length >0) {
jQuery('#windatano').html(data);
}
</script>

私はこのコードを使用して、autosuggest で JavaScript を介してデータを投稿し、windatano で jquery のリプレイを印刷していますid

--> クロムや ff などのすべてのブラウザでは正常に動作しますが、IE では動作しません

助けてもらえますか?ありがとう、

4

3 に答える 3

1

jQuery を不適切に使用しています。

適切な構文は (POST の場合)

$.post([URL], {
        var: value,
        var2: value
    }, function(data) {
        //callback goes here
    }
);

GET であるかのようにクエリ文字列を渡したい場合は、URL の . の後に追加するだけ?です。

例えば:

"http://www.site.com/search/helper/autosuggest.php?" + str
于 2012-07-30T18:46:54.560 に答える
1

IE は、getJSON かどうかに関係なく、クロスドメインの ajax 呼び出しをサポートしていません。難しい方法を学びました...結果を取得してスクリプトに返すためにcurlを使用するローカルphpファイルを追加することになりました。つまり、クロスドメインリクエストを処理する唯一の方法です。

于 2012-07-30T20:23:12.380 に答える
0

クロスドメイン ajax リクエストを行うことはできません。リクエスト URL が別のドメインにある場合、これは失敗します。ドメインが同じ場合は、相対パスを使用します。

jQuery.post("/search/helper/autosuggest.php"....

クロスドメイン ajax リクエストが必要な場合は、jsonp (http://api.jquery.com/jQuery.getJSON/#jsonp) を使用する必要があります。

また、post メソッドを使用している場合、queryString は get vars を定義します。data オプションを使用する必要があります。

jQuery.ajax({
    url: '/search/helper/autosuggest.php',
    type: 'POST',
    data: data,
    sucess: function (data) {
         if (data) jQuery('#windatano').html(data);
    }
});

データがオブジェクト形式の場合:

var data = {
    a_var = 'value',
    other_var: 'other value'
};

ごめんなさい、私の英語

于 2012-07-31T06:17:31.173 に答える