Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.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
使用jQuery访问Restful web服务时用户名和密码不正确_Jquery_Html - Fatal编程技术网

使用jQuery访问Restful web服务时用户名和密码不正确

使用jQuery访问Restful web服务时用户名和密码不正确,jquery,html,Jquery,Html,我有这个密码 var txt=“username=admin&password=admin” 现在,当我在firefox中运行它,并在控制台上查看它时,它显示不正确的用户名和密码,但我正确地提供了这两个。另外,当我尝试粘贴带有用户名和密码(两者都正确提供)的url时,它会正常运行并返回。我做得对吗?我对这种东西比较陌生。谢谢。从您的代码片段中我可以看出,RESTful服务希望您提供用户名和密码作为查询字符串参数。如果是这种情况,那么您的请求URL应该如下所示: http://localhost/

我有这个密码

var txt=“username=admin&password=admin”


现在,当我在firefox中运行它,并在控制台上查看它时,它显示不正确的用户名和密码,但我正确地提供了这两个。另外,当我尝试粘贴带有用户名和密码(两者都正确提供)的url时,它会正常运行并返回。我做得对吗?我对这种东西比较陌生。谢谢。

从您的代码片段中我可以看出,RESTful服务希望您提供用户名和密码作为查询字符串参数。如果是这种情况,那么您的请求URL应该如下所示:

http://localhost/testService/loadpayments/?username=test&password=test
但是,代码生成的请求URL是:

http://localhost/testService/loadpayments/?{%22username%22:%22test%22,%22password%22:%22test%22}
没有必要对参数进行字符串化。相反,将对象文本传递给AJAX调用的数据参数,并将processData设置为true(或者根本不指定,因为它默认为true),以便将对象转换为querystring参数:

var credentials = {username: 'test', password: 'test'};
$.ajax({
    url : 'http://localhost/testService/loadpayments/',
    type: "GET",
    contentType: "application/json; charset=utf-8",
    data: credentials,
    dataType: "json",
    processData: true, // defaults to true
    error : function(result) {
        $('#items').html(result);
    },
    success : function(model) {
        $("#items").html(model);
    }
   });
您正在使用

var jsonText = JSON.stringify({username:'test', password:'test'});
相反,如果使用stringify,则需要创建一个对象。在JavaScript中创建一个名为user的对象,如下所示:

var user = new Object();
user.username = "test";
user.password = "test";

var jsonText = JSON.stringify(user);
也许这个例子可以更好地解释

var contact = new Object(); 
contact.firstname = "Jesper";
contact.surname = "Aaberg";
contact.phone = ["555-0100", "555-0120"];

var jsonText = JSON.stringify(contact);

/* The value of jsonText is:
'{"firstname":"JESPER","surname":"AABERG","phone":["555-0100","555-0120"]}'
*/
这是未经测试的,但应该有效

编辑


我在对象概念上立场正确,并同意RoccoC5的观点,即查询字符串中的参数是正确的方向。

看来您正在将用户名和密码硬编码为“test”。您需要一个变量来将参数传递到。我使用的是JSON.stringify。但是每当我在浏览器上这样做的时候。它起作用了。你能告诉我我做错了什么吗?感谢您嗨Todd,
JSON。stringify
将同样适用于对象文本,即
{username:'test',password:'test'}
,正如它适用于使用
new object()
构造函数创建的对象一样,因为每种方法都会产生相同的结果。谢谢。它成功了,我的意思是不再有不正确的信用。我只想显示和访问服务,你能帮我处理代码片段吗?再次感谢..:)在您的成功回调中,尝试:$('#items').html(model.responseText)对,我实际上复制了代码。对成功回调做了说明,但在控制台中返回“NetworkError:401无效用户名或密码!-”,但更改了此$('#items').html(结果);发出警报(“错误”);检查它去哪里了。但每次我运行它时,它都会提醒错误。
var contact = new Object(); 
contact.firstname = "Jesper";
contact.surname = "Aaberg";
contact.phone = ["555-0100", "555-0120"];

var jsonText = JSON.stringify(contact);

/* The value of jsonText is:
'{"firstname":"JESPER","surname":"AABERG","phone":["555-0100","555-0120"]}'
*/