javascript - url 编码组件未进入字符串服务器端

标签 javascript c# jquery asp.net .net

我的字符串中有 #

我通过 ajax 将该字符串发送到服务器端的 C# 方法。

我发送的内容如下:

$.ajax({
type: "POST",
url: "http://localhost:5889/MobileEcomm/Service1.svc/validateLogin/"+EmailID+"/"+encodeURIComponent(Password),
crossDomain: true,

success: function (data) {

    alert(JSON.stringify(data));
     alert("Login Sucessfull!!!");   
        window.location = "viewOrders.html";

    // do something with server response data
},
error: function (err) {
    // handle your error logic here
    alert("Error");
}

});

我的密码字符串是:pass@#

我的c#方法结构:

public string validateLogin(string Email, string Password)
        {
              return Password;
        }

当我在c#中获取密码参数时,如下:

pass@

当我发出警报时

encodeURIComponent(Password)

其:

pass%40%23

为什么我在 C# 方法中没有得到与密码参数相同的结果(pass%40%23)???

请帮助我。

最佳答案

如果您在 IIS+ASP.Net/WCF 之上托管 WCF 数据服务,那么您可能会发现某些字符包含在实体键中时会导致服务器抛出异常。结果是 400 Bad Request 或 404 Not Found。在 VS 2010 RC 中,您可以将服务器配置为支持这些字符,但首先让我们看看哪些字符被视为“特殊”:

%,&,*,:,<,>,+,#,/, ?,\

如果在实体的字符串键内使用上述任何字符,则无论您是否转义 Uri,查询该实体都将导致错误。

并且您在 URL 中使用了 #,这就是它无法提供正确结果的原因。

在 MSDN 博客上查看此链接以获取解决方案

http://blogs.msdn.com/b/peter_qian/archive/2010/05/25/using-wcf-data-service-with-restricted-characrters-as-keys.aspx

您可能还想查看此链接,它将回答您为什么获得 %40%23 作为值的问题的第二部分。

https://social.msdn.microsoft.com/Forums/vstudio/en-US/d03c8331-1e98-4d5d-82a7-390942a93012/special-characters-in-wcf-rest-atom-feed?forum=wcf

关于javascript - url 编码组件未进入字符串服务器端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27098851/

相关文章:

javascript - Backbone 0.9.10 中验证错误的解决方法

c# - 当程序集路径和版本不同时,Assembly.LoadFrom 返回相同的程序集

javascript - jQuery 的窗口加载包装器

javascript - HTML 表格背景颜色更改不适用于从 PHP 获取的表格

javascript - 如何在 Node.js 中使用诸如模块之类的原型(prototype)?

javascript - Json 中的解析函数

c# - 谁能告诉我如何格式化文本框的文本值

c# - 如何通过DOCTYPE加速加载DTD

javascript - 追加后点击无法正常工作

jquery - Ajax 调用不会通过 GRAILS Controller 上的 withFormat->json