这可能是一个愚蠢的问题,我对NativeScript非常陌生。我有一个样本项目。尝试对本地 api执行简单的get请求。这是我的本地开发计算机上的一个网站设置,用于:
http://test-api.dev/api/v1
我试图访问本地API上的端点,但它似乎没有返回任何内容。但是,我可以将API端点更改为不是本地API的东西,有时它会返回一些内容。
API是一个Laravel/PHP,我可以确认它实际上是返回有效的json,所以我不认为api是问题所在。这是我的档案。
var config = require("../../shared/config");
var fetchModule = require("fetch");
//var http = require("http");
var ObservableArray = require("data/observable-array").ObservableArray;
function GroceryListViewModel(items) {
var viewModel = new ObservableArray(items);
viewModel.load = function() {
// http.getJSON(config.apiUrl + "events").then(function(result) {
// console.log(JSON.stringify(result));
// }, function(error) {
// console.error(JSON.stringify(error));
// });
return fetch(config.apiUrl + "events", {
headers: {
//"Authorization": "Bearer " + config.token
"Content-Type": "application/json"
}
})
.then(handleErrors)
.then(function(response) {
console.log(response);
return response.json();
}).then(function(data) {
console.dump(data);
data.forEach(function(event) {
viewModel.push({
name: event.name,
id: event.id
});
});
});
};
viewModel.empty = function() {
while (viewModel.length) {
viewModel.pop();
}
};
return viewModel;
}
function handleErrors(response) {
if (!response.ok) {
console.log(JSON.stringify(response));
throw Error(response.statusText);
}
return response;
}
module.exports = GroceryListViewModel;请对我放松点,尽管在这件事上一定要寻求帮助。先谢谢大家。
发布于 2017-04-04 21:04:44
所以我发现了这个问题,我想我会把它发出去。问题不是我的端点或我的NS安装。这是因为Android仿真器开箱即用,如果不对模拟器上的主机设置进行一些修改,就无法引用在开发计算机上运行的本地站点。这个过程在这里解释,但我想强调的是,任何有同样问题的人。
Android仿真器不支持对本地机器站点的开箱即用()访问,如下所述:https://developer.android.com/studio/run/emulator-networking.html
它需要通过设备设置,每次除非有人有一个解决方案来设置这个只有一次,我希望看到它在这里共享。
有些解决方案概述了类似的步骤,但我在每一个步骤上都有问题。这里有一个概述了这个问题的要点:http://sadhanasiblog.blogspot.in/2012/07/local-environment-setup-for-android.html
谢谢你的帮助。
https://stackoverflow.com/questions/43150805
复制相似问题