2011-01-04 17 views
2

jQueryを使用して検索文字列をあらかじめフィルタリングして、禁止されている文字を他のものと同じ長さだけ削除すると、検索エンジンの一部となるという目的で入力があります。最近、私はウェブサイトのURLを変更し、PHPを使ってajaxリクエストのURLを示す変数を出力しました(これまでのように、通常のものとajaxリクエストには別のURLがあります)。私はそれが何であるか把握できません。jQuery ajaxが読み込まれない

基本的には、ajaxリクエストは機能しません(アクションとFirebugのリクエストは一切ありません)。私のスクリプトに私が望んでいたURLを伝えるために可能な方法(関数内の宣言、引数として渡されたものなど)を試してみましたが、これは古いurlでしか機能しません(ajaxリクエストは呼び出されません)。

私はそれを確認して間違っているかどうか確認してください。

ここでは、コードです:exacly私は、検索()関数で、ない唯一の内側にそれを呼び出すときに私が欲しいもの「ACC」は、URLを含む変数で、ウィッヒプリント:

$(function() { 

    $('form#search-form').submit(function(e) { search(e, acc); }); 
    $('a#search-submit').click(function(e) { search(e, acc); }); 

}); 

function search(e, l) 
{ 
    e.preventDefault(); 

    var t = $('#search-text input[name="search-text"]').val(); 
    //var l = $('#nav-ul li.sel a').attr('href'); 

    $.ajax({ 
     type: 'POST', 
     url: l+'format_search_string', 
     data: 's='+t, 
     cache: false, 
     dataType: 'json', 
     success: function(response) 
     { 
      if (response.status == 'true') 
       window.location = $('#search-submit').attr('href')+'/s:'+response.string; 
      else 
       jQuery.facebox('<p class="facebox-notice">Necessita preencher o campo da pesquisa</p>'); 
     } 
    }); 
} 

編集ajaxリクエストは何もありません(全く呼び出されません)。私が古いURLを使用している場合は動作しますが、奇妙なことは新しいURLで少なくともajax呼び出しを行う必要があることです。

コードはすべて同じサーバーとドメインにあり、変更の必要はありません。要求のURLだけです。

通常のリクエスト:

http://category.domain.com/ 

AJAXリクエスト:あなたのような

http://www.domain.com/category 
+0

上記のコードは同じサーバーにホストされていますか、バックエンドコードだけが別のサーバーに移動されていますか? – ehudokai

+0

「acc」はどこから来ますか? – lonesomeday

+0

@ehudokai&@lonesomeday、更新された投稿 – yoda

答えて

2

サウンドが別のドメインから要求されています。これは許可されていません。

のみJSONPは、クロスサイトリクエストすることができますsame-origin-policy

を検索します。あなたが別のサーバーにバックエンドを移動した場合Same Origin Policy - AJAX & using Public APIs

+0

ありがとう、私は1つのサブドメインから別のサブドメインへの要求を行うことができなかったことに気付かなかった。乾杯! – yoda

0

はまた別のSOの質問/答えを見てみましょう。 jsonpだけでなく、jsonpタイプにリクエストを変更してみてください。

+0

いいえ、私はサーバーを変更しませんでした – yoda

関連する問題