ajax jquery设置

时间:2011-09-29 01:53:56

标签: ajax jquery

所以说我想导入(使用ajax)一个包含一些原始html和一个java脚本的脚本:

<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);
                  }
       });
      });

      }

pid fs pnln应该是网址中的参数。这在我使用$.get方法时有效,但在$ .ajax中它的工作方式是否相同?

我将数据类型设置为“script”,以便识别javascript。但这是对的吗?我不确定我知道自己在做什么。

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

要回答您的一个问题,不,$.ajax不会采用与$.get相同的参数。要发送参数,您必须使用data

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

其次,现在您将dataType设置为名为script的变量的值。您必须将其设置为字符串script

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

其他一些事情:

  1. 您可能希望使用GET明确指定type: 'GET'请求。
  2. 如果是包含脚本的HTML,则script是错误的数据类型。 (script将尝试将HTML评估为JavaScript,这将无效)
  3. .html确实会插入script标记,但不会执行它。要使其执行,您必须删除然后重新插入script标记。