Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何发出JavaScript服务器请求_Javascript_Ajax_Json - Fatal编程技术网

如何发出JavaScript服务器请求

如何发出JavaScript服务器请求,javascript,ajax,json,Javascript,Ajax,Json,我试图向站点上配置的Json服务器发出JavaScript请求。我已经处理了网站上的权限,因此我可以使用webservice模块保存评论。问题是我必须使用JavaScript来实现这一点,我已经尝试过: function CommentThis() { var comment_object = { "nid": 3, "comment": "Hello!This is my comment...",

我试图向站点上配置的Json服务器发出JavaScript请求。我已经处理了网站上的权限,因此我可以使用webservice模块保存评论。问题是我必须使用JavaScript来实现这一点,我已经尝试过:

function CommentThis()
{
    var comment_object = 
            {
                "nid": 3,     "comment": "Hello!This is my comment...", 
                "cid": 2,     "subject": "My comment",     "uid": 1  
            };
    var data= 
        {
        "method": "comment.save",
        "comment": comment_object
        }; 

    var jsonRequest = new Request.JSON(
                {
                url: "http://my_site.com/?q=services/json",
                onSuccess: function(response){
                    var myDataArray = response['#data'];
                    document.writeln(myDataArray[16]);
                                 }
                }
            ).send({ data: data });

}
Firebug说请求没有定义。
事实上,我不知道如何构造这个请求JSON类。请提供帮助。

如果您打算更频繁地使用此类功能,我建议使用框架。我个人建议使用jQuery,但既然您正在尝试一个Mootools函数,那么您可以试试这个函数。如果您不喜欢其中任何一个,您可以尝试原型


如果不想使用任何框架,则必须使用XMLHTTPREQUEST对象。W3C在这方面有自己的优势。

如果您打算更频繁地使用这种功能,我建议使用一个框架。我个人建议使用jQuery,但既然您正在尝试一个Mootools函数,那么您可以试试这个函数。如果您不喜欢其中任何一个,您可以尝试原型


如果不想使用任何框架,则必须使用XMLHTTPREQUEST对象。W3C对此有一个明确的定义。

您也不想使用它

 document.writeln(myDataArray[16]);
DOM完成后,Document.writeln()将清空整个页面 翻译您希望使用jQuery或mootools等操作DOM。阿尔索
响应对象可能需要从Json解析为对象。

您也不想使用

 document.writeln(myDataArray[16]);
DOM完成后,Document.writeln()将清空整个页面 翻译您希望使用jQuery或mootools等操作DOM。阿尔索
响应对象可能需要从Json解析为一个对象。

您可以使用
XMLHttpRequest
对象来实现这一点。这里有一个帮助函数可以帮助您开始

函数ajax(url、设置){
var ajax=new window.XMLHttpRequest(),
data=settings.type=='GET'?'':settings.data;
url=settings.type==“GET”?url+(settings.data?“?”+settings.data:“”):url;
ajax.onreadystatechange=函数(){
如果(ajax.readyState==4){//response ready
如果(ajax.status==200){//success
if(settings.success)settings.success(ajax.responseText、ajax.statusText);
}否则{
if(settings.error)settings.error(ajax、ajax.status、ajax.statusText);
};
};
};
打开(settings.type,url);
发送(数据);
};
下面是重写后使用的函数:

函数commentThis(){
变量注释\对象={
“nid”:3,“评论”:“你好!这是我的评论……”,
“cid”:2,“主题”:“我的评论”,“uid”:1
},
数据={
“方法”:“comment.save”,
“注释”:注释对象
};
阿贾克斯(“http://my_site.com/?q=services/json", {
“类型”:“获取”,
“数据”:数据,
“成功”:功能(数据、状态){
var myDataArray=data['#data'];
document.writeln(myDataArray[16]);
}
} );
};

您可以使用
XMLHttpRequest
对象执行此操作。这里有一个帮助函数可以帮助您开始

函数ajax(url、设置){
var ajax=new window.XMLHttpRequest(),
data=settings.type=='GET'?'':settings.data;
url=settings.type==“GET”?url+(settings.data?“?”+settings.data:“”):url;
ajax.onreadystatechange=函数(){
如果(ajax.readyState==4){//response ready
如果(ajax.status==200){//success
if(settings.success)settings.success(ajax.responseText、ajax.statusText);
}否则{
if(settings.error)settings.error(ajax、ajax.status、ajax.statusText);
};
};
};
打开(settings.type,url);
发送(数据);
};
下面是重写后使用的函数:

函数commentThis(){
变量注释\对象={
“nid”:3,“评论”:“你好!这是我的评论……”,
“cid”:2,“主题”:“我的评论”,“uid”:1
},
数据={
“方法”:“comment.save”,
“注释”:注释对象
};
阿贾克斯(“http://my_site.com/?q=services/json", {
“类型”:“获取”,
“数据”:数据,
“成功”:功能(数据、状态){
var myDataArray=data['#data'];
document.writeln(myDataArray[16]);
}
} );
};

Request.JSON
是一个Mootools函数。您正在使用Mootools吗?
Request.JSON
是一个Mootools函数。您正在使用Mootools吗?我在HTML页面中包含了Mootools,并且删除了document.writeln()部分。但它似乎不起作用。它应该在我的页面上发布评论,但我认为我的脚本中仍然存在错误。无论如何,谢谢你。它有两个部分。首先,您必须确保服务器确认并保存新数据。其次,您必须更新客户端页面,以便用户知道一切正常。您可以在响应对象中重新加载受影响的html,也可以返回状态代码并使用post数据更新html。我在html页面中包含了mootools,并且已删除了document.writeln()部分。但它似乎不起作用。它应该在我的页面上发布评论,但我认为我的脚本中仍然存在错误。无论如何,谢谢你。它有两个部分。首先,您必须确保服务器确认并保存新数据。其次,您必须更新客户端页面,以便用户知道一切正常。您可以在响应对象中重新加载受影响的html,也可以返回状态代码并使用post数据更新html。