2011-09-29 85 views
0

所以說我想導入(使用AJAX),這既包含一些原始的HTML和Java腳本的腳本:阿賈克斯jQuery的設置

<p>To comment, please first prove that you are human being</p> 
<form method='post' action='../recapatcha_verify.php'> 
<script type="text/javascript" 
src="http://www.google.com/recaptcha/api/challenge?k=your_public_key"> 
</script> 
<input type='submit'/> 
</form> 

是有什麼錯用下面的函數?

function comments(file, id, fs, pn, ln) 
    { 
     $("div#commentWrapper").show(function(){ 
     $.ajax({ 
      url: "../commentfiles/" + file, 
      pid: id, 
      fs: fs, 
      pn: pn, 
      ln: ln, 
      dataType: script, 
      success: function(txt) 
       { 
      $("div#commentWindow").html(txt); 
        } 
     }); 
     }); 

     } 

pidfspnln應該是在URL參數。這適用於當我使用$.get方法,但它的工作相同的$ .ajax?

我將數據類型設置爲「腳本」,以便可以識別javascript。但這是正確的嗎?我不確定我知道我在做什麼。

感謝您的幫助

回答

0

爲了回答您的問題之一,不,$.ajax不帶參數的方式相同$.get。要發送參數,則必須使用data

$.ajax({ 
    ... 
    data: {param1: 1, param2: 2, param3: 3}, 
    ... 
}); 

其次,現在你設置dataType一個名爲script變量的值。你必須將其設置爲字符串script

$.ajax({ 
    ... 
    dataType: 'script', 
    ... 
}); 

一些其他的事情:

  1. 您可能需要顯式地指定它的使用type: 'GET'一個GET請求。
  2. 如果是包含腳本的HTML,script是錯誤的數據類型。 (script將嘗試評估HTML爲JavaScript,這將不起作用)
  3. .html確實會插入script標記,但它不會執行它。爲了執行它,您必須刪除並重新插入script標籤。
+0

非常有幫助謝謝。 – Jeff

+0

以及如何爲部分「html」和部分「腳本」設置數據類型? – Jeff

+0

@Jeff:你的'success'回調期待一個字符串,所以你可以將它設置爲'text'。 – icktoofay