我有一个REST和WCF服务,并希望根据操作发送自定义状态代码.
某些验证失败然后我想发送HTTP 444的示例,当授权失败时,我想发送HTTP 455
问题是我们如何对SOAP和REST Web服务进行验证.
在客户端上,错误代码如何起作用,因为当您从WCF服务(使用SOAP)发送HTTP 400/500时,会在显示状态代码的客户端上抛出异常.
现在,如果我发送一个新的自定义状态代码,客户端如何处理这个?
对于不正确的Ajax操作,我使用HTTP标头代码设置为403并发送以下响应:
{"code":"403","status":"Forbidden","message":"You cannot do this"}
Run Code Online (Sandbox Code Playgroud)
但是,我在处理错误时无法访问此数据...是否可以从jqXHR获取"消息"数据?
像jqXHR.message这样的东西?
非常感谢您的帮助...
EDIt:
error: function (xhr) {
$(".alert").html(xhr.responseText);
},
Run Code Online (Sandbox Code Playgroud)
返回:
{"code":"403","status":"Forbidden","message":"You cannot do this"}
Run Code Online (Sandbox Code Playgroud)
但是xhr.responseText.message没有返回任何内容......
编辑:此代码有效:
error: function (xhr) {
var jsonResponse = JSON.parse(xhr.responseText);
$(".alert").html(jsonResponse.message);
},
Run Code Online (Sandbox Code Playgroud) ajax请求返回一个标有我用户输入的JSON数组.输入已经过清理,使用eval()函数,我可以轻松创建我的javascript对象并更新我的页面...
所以这就是问题所在.无论我如何努力消毒输入,我宁愿不使用eval()函数.我已经检查了谷歌如何使用"没有评估的AJAX中的JSON",并且已经运行了很多不同的方法......
我应该使用哪一个?是否有标准的,经过验证的安全方法?
我一直在浏览源代码,找出jQuery.ajax()调用成功/失败方法的标准.它不是基于纯粹的状态代码,它似乎还涉及到数据类型.
我总是使用'完整'回调来编写自定义错误处理程序.
究竟哪个是成功/失败电话的标准?
我有以下代码来执行跨域请求并获取JSONP数据(JSON由回调方法包装).我已经验证我正在使用包装我的JSON数据的回调方法正确获得响应.它在IE7中完美地工作(回调cb被调用)但在IE8中没有.
$(document).ready(function () {
var abc = $.ajax({
type: "GET",
url: "http://sd.domain.com/param1=a¶m2=b&output=json&callback=cb",
dataType: "jsonp",
jsonp: false,
cache: false,
success: function (json) {
},
error: function (e) {
}
});
abc.error(function (data, xhr, dat1) {
});
abc.complete(function (xhr, status) {
var data = xhr.responseText;
});
});
function cb(dd) {
alert(dd.people[0].nameFirst);
}
Run Code Online (Sandbox Code Playgroud)
我将statusText称为'Success',StatusCode为xhr中的200.此外,我无法为xhr找到任何称为responseText的属性.那么如何在错误/完整功能中获得响应?有任何想法吗?