1

私は本当にたくさんグーグルで検索しましたが、私の質問をカバーする答えは見つかりませんでした。

Chrome拡張機能を開発していて、jqueryでajax呼び出しを行いたいです。
私はそれをこのようにします:
popup.js

$(function()
{
    $('#btn').click(function()
    {
        $('#wait').html('loading...');
        jQuery.getJSON("http://domain.com/extension_php_files/generate.php?callback=?",
        {id:25}, 
        function(data) 
        {
            $('#wait').html('');
            console.log( JSON.stringify(data) ) 
            $.each(data, function(key, val) 
            {
                alert(key + '  ' + val);
            });
        });
    });
});

そして、これが私のpopup.htmlです

<!doctype html>
<html>
  <head>
    <title></title>
    <script src="jquery.js"></script>
    <script src="popup.js"></script>
  </head>
  <body>
  <a href="#" id="btn">SEND</a><br /><br /><br /><br />
  <span id="wait"></span>
  </body>
</html>

そして manifest.json

{
  "manifest_version": 2,

  "name": "black",
  "description": "black here",
  "version": "1.0",

  "permissions": [
    "http://domain.com/*"
  ],
  "browser_action": {
    "default_icon": "icon.png",
    "default_popup": "popup.html"
  }
}

SENDボタンをクリックすると表示されますLoading...が、成功機能にはなりません。私はグーグルで検索しましたが、問題を理解できませんでした。
私は何が間違っているのですか?

PS:私のサーバー側のコードは問題なく動作します。

4

2 に答える 2

2

また、jquery ajaxリクエストに苦労することもあります。私にとって最善の解決策は、そのコードをネイティブのjavascriptAjaxコードに置き換えることです。次のようにXMLHttpRequestを使用してリクエストを作成してみてください。

var xhr = new XMLHttpRequest();
     xhr.open("GET", "http://domain.com/", true);
     xhr.onreadystatechange = function() {
      if (xhr.readyState == 4) {

          // paste your code here 
       }
     }
     xhr.send();

http://domain.com/を完全なURLに置き換えます

于 2013-03-25T08:54:00.973 に答える
0

ロブWの助けてくれてありがとう。URLの最後で

削除しました。?callback=?そしてサーバーサイドページで私はこのようなことをしました:

$id = $_GET['$id'];
$arr = array ("id"=>$id,"name"=>"Siamak","lname"=>"Aghaeipour","age"=>"24");
$jsonData =  json_encode($arr);
echo $jsonData;

正常に動作します。

于 2013-03-25T09:51:48.590 に答える