1

我目前正在尝试使用 AJAX 请求将值传递到服务器端端点。一切正常,直到我尝试在 url 中传递一个十进制值。据我了解,. 字符是 url 中的保留字符,我想知道如何在我的 AJAX 请求中传递十进制值。

我当前的端点是这样的;/domain/some-url/?value1=5&value2=2.3 上面的 url 结果为 404。

如果我将 value2 更改为整数或字符串,它可以工作文件。示例是 /domain/some-url/?value1=5&value2=2 我从上面的 URL 获得了成功的响应。

有处理这种情况的标准方法吗?

4

5 回答 5

3

不,.不是 URL 中的保留字符 - 请参阅https://www.rfc-editor.org/rfc/rfc3986#section-2.3 - 所以它是否是 URL 编码的应该没有区别。

在我看来,问题在于服务器端脚本不接受该参数中的点,但如果没有更多细节,很难说出原因。

于 2012-05-05T07:01:31.973 回答
3

您的问题似乎出在您的服务器上,.没有保留。我实际上尝试在浏览器中使用 encodeURI:

> encodeURI("/domain/some-url/?value1=5&value2=2.3")
"/domain/some-url/?value1=5&value2=2.3"

结果不变。试试看

于 2012-05-05T07:02:47.030 回答
2

这不是点本身。为什么点是 URL 中的保留字符?在这种情况下,您将无法使用/img/someimg.jpgetc。它必须与您的服务器处理请求的方式有关。

可以肯定的是,我已经使用我自己的一个服务器端测试脚本 @ 对此进行了测试http://testbed.nicon.nl/v8test/json.xjs?testone=0.234&test2=4.56。该脚本已找到并且可以正常工作,小数点没有问题。

于 2012-05-05T07:08:59.437 回答
0

请检查您的域/服务器上的.htaccess路由脚本以允许 . 在参数中;

否则

/domain/some-url/?value1=5&value2=2.3

是在 url 中传递十进制值的正确方法;

于 2012-10-10T12:37:08.837 回答
-2

尝试在您的 ajax 请求中发送如下参数;

data: { value1:5, value2: 2.3 }
于 2012-05-05T06:55:27.827 回答