jquery getJSON不执行问题解决

时间:2022-07-24
本文章向大家介绍jquery getJSON不执行问题解决,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

出现问题的原因及解决方案

如果遇到getJSON不执行问题 请根据以下步骤一次对号入座并解决

1 getJSON请求是否成功

跟踪一下服务器端的后台代码,看前台是否发送请求成功,后台是否成功接收请求

2 回调是否成功

你可以在原回调函数里面加句alert(“回调成功”) , 来确定一下是否调用了回调函数,如果没有调用,则仔细检查你的JSON数据格式

把json 数据输出,拉到 JSON在线验证工具中进行验证即可,一般主要是双引号的问题。


3 Ajax跨域问题

如果JSON 格式正常并且getJSON请求成功 并且你是跨域请求或者浏览器本地测试, 那么几乎是Ajax 跨域问题导致的。

什么叫跨域?字面理解,跨是跨越,域是别的服务器,跨域就是到别的服务器上取东西。报错的意思应该就是chrome下,跨域请求只能通过通过这些协议标准实现:http、data、https、chrom-extension、chrom-extension-resource。

只要协议、域名、或端口有任何一个不同,就会被当做是不同的域。

但是仔细再一想,我请求的是本地文件啊,没有通过服务器请求啊,应该不算跨域么?什么鬼

再查发现,有的同学是使用 chrome, 在浏览器读取本地相对路径脚本时,其禁止向第三方请求数据。 (只要是通过file://方式访问,或者直接拖进浏览器访问,都叫本地运行) 什么叫第三方?那就是不管本地文件、还是服务器url 文件都不行。

3.1 解决方法

在sublime里面 启动sublimeServer,开启服务器模式,在浏览器中通过localhost:8080/index.html访问,再看 debug tool,没有报错了,完美!~成功访问到本地json文件。

附: sublimeServer启动和使用

  1. 打开Package Control,选择install package
  1. 在输入框中输入sublime serve就行了,安装完成
  2. 点击tool–sublimeserver–start sublimeserver

4. 然后到页面,右键选择view in sublimeserve,如图:

  1. 即可在页面上可见