0

我第一次遇到这种奇怪的情况。我已经使用过 Ajax 和不同类型的参数。我试着用它来解决contentType,但它似乎没有用。

我尝试使用文档的UTF-8contentType等格式,如上所述。

$.ajax({
    url: "/Test",
    type: "POST",
    data: 
    {
        'ID':$(this).attr("ID"),
        'Date':$(this).attr("Date")
    },
    dataType: "json",
    cache: false
})

ID=12345&Date=01.01.2018+00%3A00%3A00 // 是

ID=12345&Date=01.01.2018 00:00:00 // 应该是

因此,我无法将其转换为doubleDelphi (Rad Studio) 中的类型:

类型变体 (UnicodeString) 无法转换为 Double

4

1 回答 1

0

您的字符串已被 html 编码。Html 在将其转换为日期之前在您的服务器端对其进行解码(或者在您的情况下为双精度?)。

大多数 ajax 库会自动执行此操作。 这可能是您正在做的事情,因此您的日期字符串中的 html 编码。奇怪的是,您以前从未注意到它,因为它在帖子中是相当正常的行为。

要在 Delphi 中修复,请查看该HTTPApp单元。HTTPDecodeHTMLDecode(以及编码功能)。您应该在Source/Win32/Internet文件夹中找到它。

请参阅此 SO 问题,因为上述段落的答案来自那里。

于 2018-07-17T14:55:40.133 回答