ajax请求本地json文件出现跨域问题

ajax请求本地json文件出现跨域问题,第1张

开发的时候,会经常使用一些假数据,这个时候我们就会在本地进行ajax请求(开发工具使用vscode,如果是webstrom则不会有这个问题),来获取数据,例如ajax本地请求json文件但是在请求的时候会遇到跨域问题:

建议使用火狐浏览器,因为谷歌浏览器是不允许跨域请求的,因为不安全,但是我们现实中,很多地方是必须要用到跨域请求,谷歌浏览器严格遵循,但是火狐浏览器考虑到现实因素,就可以使用跨域,但是需要进行一些设置.

1、在Firefox的地址栏输入“about:config”,回车

2、在过滤器(filter)中搜索“security.fileuri.strict_origin_policy”(第一次会出现安全协议,点击确认即可)

3、双击security.fileuri.strict_origin_policy设置为false

4、关闭目前开启的所有Firefox窗口,然后重新启动Firefox,这个时候就可以了.

虽然会报格式不佳的错误,但是数据还是请求出来滴!

使用ajax请求本地md文件

注意1,如果是POST请求,要设置请求头,因为xhr ajax默认content-type是text/plain,而一般ajax请求或者表单的content-type是application/x-www-form-urlencoded,要注意后端可以解析的content-type格式

关于ajax content-type详细内容看这里 传送门

注意2,XMLHttpRequest在IE8以下不兼容,IE8以下使用ajax的方法是ActiveXObject('Microsoft.XMLHttp'),所以可以做一下兼容:

当然也可以用try-catch

执行结果是:

在JavaScript中解析markdown需要用到一些js解析库,目前比较流行的是marked.js和showdown.js 二者比较

根据github上的star和bootcdn上的使用情况,选择marked作为解析库

解析结果:(红色部分是引用,也就是md语法">")

结果显而易见,没有样式

所以接下来要布置一下md渲染的样式,这里采用 github-markdown-css ,同时将展示md内容的标签附上样式class="markdown-body",渲染结果如下:

经过上面三步,已经可以成功请求到本地的markdown文件。回过头来看整个过程,觉得xhr ajax请求应该封装成一个外部函数来调用。

那个不是 磁盘文件的地址 ,是一个网页地址 ,ajax异步提交

xmlhttp.open("GET","/ajax/test1.txt",true)

的三个参数 第一个是get 方式还是 post 方式 第二个是 提交到的地址 ,第三个参数 是同步提交还是异步提交, 你在写一个servlet 或者 action 提交过去 ,.xmlhttp.responseText是到指定url 运行后 返回的 值, 你再多看一下ajax的原理


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11833063.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存