jquery getJSON不执行问题解决

本文主要介绍了jQuery getJSON不执行的问题及其解决方案,包括检查JSON数据格式、确认回调函数是否调用以及解决Ajax跨域问题。在Chrome本地运行时,由于浏览器限制,可能出现跨域错误。通过启动SublimeServer,在服务器模式下运行,可以解决本地文件的跨域访问问题。

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

如果遇到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
    在这里插入图片描述

  2. 在输入框中输入sublime serve就行了,安装完成

  3. 点击tool–sublimeserver–start sublimeserver

在这里插入图片描述
4. 然后到页面,右键选择view in sublimeserve,如图:

在这里插入图片描述

  1. 即可在页面上可见
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值