Aquery ajax 请求似乎未在 android 中启动

Aquery ajax request seems not starting in android

提问人:user3142817 提问时间:1/6/2016 最后编辑:Nmkuser3142817 更新时间:2/28/2020 访问量:745

问:

我认为我为从JSON中的服务器获取数据而构建的代码没有启动。在 logcat 中,没有来自“log.v”的文本。此外,我制作的代码似乎一直都不好。我使用 A 查询来处理 ajax 请求。

其他人对此有问题吗?

我想将JSON放入哈希图中,以便构建它的列表视图,但是我无法将JSON中的数据获取到logcat中

问候

public class film_sound extends Fragment {
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        // Get the view from fragmenttab1.xml
        View view = inflater.inflate(R.layout.activity_film_sound, container, false);
        Context context = inflater.getContext();
        String[] Film_Data =  getArguments().getStringArray("Film_Data");

        File ext = Environment.getExternalStorageDirectory();
        File cacheDir = new File(ext, "/android/data/be.moviechecker.programma/case");
        AQUtility.setCacheDir(cacheDir);
        final AQuery aq = new AQuery(context);

        /*Ophalen van de json*/
        String url = "http://app.be/data_2_0_0/sound.php?id=1";
        aq.ajax(url, JSONObject.class, new AjaxCallback<JSONObject>() {
            @Override
            public void callback(String url, JSONObject json, AjaxStatus status) {
                if (json != null) {
                    JSONArray jArray = null;
                    try {
                        jArray = json.getJSONArray("soundtrack");
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }

                    if (jArray.length() == 0) {
                        Log.v("debug", "dataleeg");
                    } else {
                        for (int i = 0; i < jArray.length(); i++) {
                            JSONObject json_data = null;
                            try {
                                json_data = jArray.getJSONObject(i);
                            } catch (JSONException e) {
                                e.printStackTrace();
                            }
                            try {
                                Log.v("debug", json_data.getString("naam"));
                            } catch (JSONException e) {
                                e.printStackTrace();
                            }
                        }
                    }
                } else {
                    //ajax error, show error code
                    Log.v("debug", aq.getContext() + "Error:" + status.getCode());
                }
            }
        });

        return view;
    }
}
android jquery json ajax aquery

评论

1赞 romtsn 1/11/2016
您似乎使用了错误的网址。尝试在浏览器中打开您的网址(复制+粘贴)。没有返回json数据,只是找不到此页面的错误。同时尝试将返回的数据转换为 json,这就是为什么没有返回或记录任何内容的原因。尝试使用正确的 url 来获取 json 数据。AQuery
1赞 user3142817 1/12/2016
它不是真正的 URL,我从 PHP 代码中获取状态 200 和 JSON
1赞 romtsn 1/12/2016
因此,发布您的真实网址,社区需要重现该问题,因此我们需要所有信息才能解决您的问题。
1赞 romtsn 1/12/2016
我刚刚运行了您的代码,并且登录到 android logcat 时出错,未找到 404。因此,该代码可以完美地工作。也许您只是忘记添加互联网权限?AndroidManifest.xml
1赞 user3142817 1/13/2016
@rom4ek我添加了正确的权限

答:

0赞 Koen 1/19/2016 #1

在 phonegap 中,您必须在 config.xml启用跨域请求

<access origin="http://domain.com/public/auth/app-login"/>

也许你可以看看这个:
来自本地 HTML 文件的 WebView Javascript 跨域