我正在尝试使用以下代码从网站获取JSON数据,但是我收到错误Uncaught SyntaxError:文件中的意外标识符:///android_asset/www/projectName.html:1 如果我将网站上的数据保存为.json文件,我可以很好地访问它,但如果我从网站访问它则不能。如何从网站上完成这项工作?
HTML:
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js">
</script>
<script type="text/javascript">
$(document).ready(function(){
$("button").click(function(){
$.get('http://example.ca/log_sheets.json', function(data) {
alert('get performed');
var obj = eval ("(" + data + ")");
$("p").html(obj[0].log_sheet.activity_type);
});
});
});
</script>
</head>
<body>
<h2>Heading</h2>
<p>Display</p>
<button>Click me</button>
</body>
</html>
JSON数据示例:
[{"log_sheet":{"activity_type":"Normal","activity_value":null,"carbs_value":25.0, ect... }}]
使用phonegap运行html页面的代码:
package com.example.projectName;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.MenuItem;
import android.support.v4.app.NavUtils;
import org.apache.cordova.*;
public class MainActivity extends DroidGap {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.loadUrl("file:///android_asset/www/projectName.html");
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}
答案 0 :(得分:0)
file:///android_asset/www/projectName.html
该链接看起来像一个本地文件,因此,即使您在网络服务器中将其映射为应该预处理的内容,它也会按原样显示。
如果它真的是您项目的一部分,看起来您必须发布相关代码。
答案 1 :(得分:0)
如果jQuery认为你正在检索JSON(通过服务器提供的mime-type,最终参数为$.get(...,'json')
,或者使用$.getJSON
),那么传递给回调的数据将已经是JavaScript对象。
在这种情况下,您不希望eval
。