【发布时间】:2015-10-08 14:24:12
【问题描述】:
我有以下 http.get 请求...
$http.get("api/checkSave/"+ JSON.stringify($scope.programDetails)).then(function(data) {
....
});
在我的 programDetails 对象中,至少有一个字段可以包含 URL。我认为 stringify 会正确编码对象,因此它会正确传递给我的 PHP 函数。但似乎发生的是 URL 未正确发送。我收到一个错误,服务器以 404 not found 错误响应。我手动尝试删除请求中的 URL(将其复制到浏览器并为 URL 字段发送一个空字符串)并且请求被正确处理 - 这就是为什么我认为 stringify 不能满足我的需要。
我还需要稍后通过 http.post 发送此数据以将数据保存在对象中。希望我在获取中需要做的任何事情在我发帖时也适用。
stringify 应该正确地传递数据还是我需要以不同的方式对其进行编码?我一直在其他应用程序中使用 stringify,但不必在数据中传递 URL。
如果我需要做不同的事情,我需要知道在 PHP 端做什么来解码它以进行处理。我为 get/post 找到的示例似乎都传递了单个变量,而不是对象,而不是其中一个变量中的 URL。我已经看到 encodeURIComponent 提到,但不确定这是否是我需要使用的,如果是,那么在 PHP 端使用什么来正确解码。
【问题讨论】:
-
不要使用encodeURIComponent代替stringify,而是将它们组合起来......您还应该将它添加到像'?json=XXXX'这样的变量中