我正在编写iOS uiwebview中使用的html,用javascript在服务器上加载json文件。以下是json数据。
{"posts": {"post": [
{
"date": "2014-08-21",
"id": "00e8fa3a41bb42f7be1997053830516b",
"title": "abc",
"content": "`w;lkjjfdsd;lkfadvn"
},
{
"date": "2014-09-03",
"id": "20fe501e95994bfebe9f62abce99aa36",
"title": "kl;jsdfja",
"content": "lk;sdjfsafj"
},
{
"date": "2014-09-03",
"id": "013cc71e4a424bc3826731711d69ca6e",
"title": "def",
"content": "defji"
}
]}}
我提出的ajax代码如下。我可以弹出第一个警报,但不会弹出第二个警报。有任何想法吗?人
$.ajax({
type: 'GET',
url: url,
dataType: 'json',
async: true,
crossDomain: true,
success: function(data) { alert(url); alert(data.posts.post[0].date); }
});
iOS代码:
- (void)viewDidLoad {
[super viewDidLoad];
NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"index" ofType:@"html" ]];
[_mWebView loadRequest:[NSURLRequest requestWithURL:url]];
}
问题是如果我在safari中运行html,ajax代码工作正常(弹出两个警报)。但是如果我在iOS的UIWebview中加载它,它就无法工作。所以我在网上搜索了这个问题,根据我看到它可能是一个跨域问题(在web视图中加载的index.html是本地的,但它请求的json在服务器上)。我们如何使我的代码加载数据/文件跨域?任何的想法?感谢。
答案 0 :(得分:0)
使用JavaScript控制台捕获和读取错误消息。我建议通过单击F12启用一个并重试请求。
答案 1 :(得分:0)
读取数据的函数应为success
,而不是complete
:
$.ajax({
type: 'GET',
url: url,
dataType: 'json',
async: true,
crossDomain: true,
success: function(data) { alert(url); alert(data.posts.post[0].date); }
});