Js是不能进行跨域访问的,出于安全考虑。js设计时规则定义,不可以跨域请求。
一、什么被称为跨域
1.域名不同;
2.域名相同、端口不同;
只有域名相同,端口相同时才能访问。
解决办法:
使用jsonp解决跨域问题
什么是jsonp:
Jsonp其实就是一个跨域解决方案。Js跨域请求数据是不可以的,但是js跨域请求js脚本是可以的。可以把数据封装成一个js语句,做一个方法的调用。跨域请求js脚本可以得到此脚本。得到js脚本之后会立即执行。可以把数据做为参数传递到方法中。就可以获得数据。从而解决跨域问题。
使用jquery的getJSONP方法:
$.getJSONP(this.URL_Serv, category.getDataService);
URL_Serv:请求地址,category.getDataService:参数。
返回的js脚本格式:category.getDataService(json字符串);
eg:
category.getDataService({
"data": [
{
"u": "/products/1.html",
"n": "<a href='/products/1.html'>图书、音像、电子书刊</a>",
"i": [
{
"u": "/products/40.html",
"n": "经管励志",
"i": [
"/products/41.html|经济",
"/products/42.html|金融与投资",
"/products/43.html|管理",
"/products/44.html|励志与成功"
]
}
]
}
]
});