谁能告诉我为什么以下声明不会将发布数据发送到指定的网址?当我打印$ _POST时,在服务器上调用url - 我得到一个空数组.如果我在将数据添加到数据之前在控制台中打印消息 - 它会显示正确的内容.
$http.post('request-url', { 'message' : message });
Run Code Online (Sandbox Code Playgroud)
我也尝试将数据作为字符串(具有相同的结果):
$http.post('request-url', "message=" + message);
Run Code Online (Sandbox Code Playgroud)
当我以下列格式使用它时它似乎正在工作:
$http({
method: 'POST',
url: 'request-url',
data: "message=" + message,
headers: {'Content-Type': 'application/x-www-form-urlencoded'}
});
Run Code Online (Sandbox Code Playgroud)
但有没有办法用$ http.post()来做 - 并且我总是必须包含标题才能使它工作?我相信上面的内容类型是指定发送数据的格式,但我可以将其作为javascript对象发送吗?
所以,我已经从离子克隆了教程app repo.我跑了
ionic start conference sidemenu
Run Code Online (Sandbox Code Playgroud)
然后我添加了一个简单的$ http.get('myserver')(我也试过了ngResources).
它在chrome上工作得很完美,我得到了所有数据但是在角度上我只有空数据和404状态在我试图做的任何请求.
注意:我尝试使用托管服务器和本地服务器.两者都在Android上失败.Server是node.js REST API.
控制台上没有打印任何内容,因此请求甚至无法到达服务器.
有没有人经历过这个或者可以告诉我如何调试使用Ionic构建的Android应用程序?
编辑1:我不知道你为什么需要它,但在这里
$http.get('http://server.com/route').success(function (data) {
//handle success
}).error(function (data, status) {
// handle error
});
Run Code Online (Sandbox Code Playgroud) 这个问题部分指向我之前的问题: Ionic + Angular POST请求返回状态404
但我无法找到有效的解决方案.
问题如下:
如果我从设备上运行的移动应用程序请求我总是得到响应404:
Request Method:POST
Status Code:404 Not Found (from cache)
Request Headersview source
Accept:application/json, text/plain, */*
Content-Type:text/plain
Origin:file://
User-Agent:Mozilla/5.0 (Linux; Android 4.4.2; Lenovo Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/30.0.0.0 Mobile Safari/537.36
Request Payloadview source
{,…}
Run Code Online (Sandbox Code Playgroud)
但是,如果我在Chrome浏览器中使用Postman插件在桌面上尝试相同的请求,我总是得到带有我需要的数据的响应200.
我认为这是由Angular http方法引起的问题,但在之前的帖子中我注意到这不是真的.
我怎么能避免这个呢?我应该在应用程序的HTML中,在请求期间还是在服务器端(PHP)设置一些标头?
非常感谢任何建议.
编辑:
我试过通过这种方式设置cache:false:
$http({
method : 'POST',
url : $scope.remoteUrl,
data: postData,
headers: headersData,
cache: false,
timeout: 10000
// success response
})
Run Code Online (Sandbox Code Playgroud)
但没有运气.