【问题标题】:how to send a serialized string to asp?如何将序列化的字符串发送到asp?
【发布时间】:2014-03-12 03:47:59
【问题描述】:

我在尝试将 MDX 成员从 $.get 请求解析到 .asmx 文件时感到头疼;

最初我的请求是这样的; $.get("/" + source + ".asmx/FilterData", {strKeyval: queryName, controlID: currentID, filterString: filterString},

filterString 的值在哪里; [Product].[Product].[Dept No].&[123]

虽然我得到了一个服务器端错误,并认为它是 & 符号,所以根据 this question 中 Rory 的建议,我尝试了 escape() 函数,但现在我从 asmx 文件中得到了这个错误,因为% 符号;

解析器:解析时出现以下语法错误:Invalid token, Line 1, offset 499, %

我如何让 asp 接受这个?我从来没有遇到过这个问题!

【问题讨论】:

    标签: javascript asp.net vb.net web-services getjson


    【解决方案1】:

    您可以配置您的 asmx 服务以接受 POST 请求:

    在 web.config 中:

    <webServices>
        <protocols>
            <add name="HttpGet"/>
            <add name="HttpPost"/>
        </protocols>
    </webServices>
    

    使用 $.post 代替 $.get。如果使用 post 数据将在请求的正文中发送,您不需要转义 '&'

    【讨论】:

    • 他们已经接受了发布请求。 . .请在下次您认为单独的相关问题是问题时发表评论
    • 好点,但这是我在生产中运行了近 6 个月的产品中添加了一个功能,我不知道他们是否允许在其中完成数据库搜索请求发帖,会为闯入开辟空间
    【解决方案2】:

    好的,所以在撕裂和破坏我的大脑之后,我找到了一个比我想象的更简单的解决方案:

    我完全删除了escape() 函数以及我之前使用的任何序列化,并简单地将&amp;s 替换为像这样的html 编码& 符号;

    filterString = filterString.replace("&", "\\u0026");
    

    效果很好,我希望 ASP 和微软不要再如此无理取闹,他们应该处理安全风险而不是避免它

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-30
      • 2020-01-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多