0

所以一个简单的问题:

JavaScript 需要将该请求发送到服务器:

myserver/scipt.php?LANG=EN&AGENT={"登录":{"name":"user","pass":"user"}}

我需要如何在 Ajax 中形成 url 和数据?

这是正确的吗?

var formData = {
            "login":$("#field1").val(),
            "pass":$("#field2").val()
               };

$.ajax({
    url:'http://myserver/scipt.php?LANG=EN&',
    type:'GET',
    data:'AGENT=' + $.toJSON(formData),
    success: function(res) {
                        alert(res);
                           }
      });

谢谢!

4

3 回答 3

0

我建议通过 POST 而不是 GET 发送 JSON。GET 有一些您想避免的限制。

其中的一部分,是的,您的代码似乎还可以。

编辑:

抱歉,您的代码不正确。

将数据行更改为:

data: $.toJSON(formData),
于 2012-10-26T09:06:09.760 回答
0

您需要对要通过 Ajax 传递的任何字符串进行 URL 编码。

如果 jQuery 像普通表单一样工作,您还需要将所有查询字符串数据放入data其中以避免现有查询字符串被破坏。

url:'http://myserver/scipt.php',
type:'GET',
data: { 
    "AGENT": $.toJSON(formData),
    "LANG": "EN"
},

请注意,如果要传输用户凭据,则应使用 POST 请求。您不希望它们缓存或存储在服务器 access.log 文件中。

于 2012-10-26T09:07:32.473 回答
0

您需要以地图的形式将数据发送到服务器..

你的数据已经是 json 格式了。你不需要$.toJSON再做

代替

data:'AGENT=' + $.toJSON(formData),

以这种方式发送

 data:{ 'AGENT' : {'Login' : formData } },
于 2012-10-26T09:08:14.987 回答