當前位置:首頁 » 文件傳輸 » ajax跨域訪問
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

ajax跨域訪問

發布時間: 2022-01-12 21:08:31

❶ 如何使用js或者$ajax進行跨域請求

CORS來解決跨域的問題

❷ Jquery AJAX跨域問題怎麼解決

用JSONP可以實現ajax跨域訪問:

jQuery.ajax({
url: 'http://192.168.1.xxx:8080/jsonp.action?arg=123',
type: 'GET',
dataType: "jsonp", // 注意dataType是jsonp
cache: false,
success: function(data){
alert(data.key); //這里就把你傳入的123顯示出來
}
});
不知道你後台用的是什麼語言,如果是JAVA,可以像這樣寫:
public void jsonp() {
String arg = this.getRequest().getParameter("arg");
this.writeResponse("({key:'" + arg + "'})");
}

❸ 為什麼有人說ajax不能跨域是什麼意思 不是可以通過ajax跨域訪問嗎

嗯,就是說啊,ajax只能在自己的域下訪問,比如在騰訊裡面寫的AJAX 是不能去訪問網路裡面的東西的,這就是跨域的!使用AJAX是需要伺服器環境的,目前只有火狐瀏覽器不需要搭建環境,即可直接使用AJAX操作!

❹ AJAX跨域訪問解決方法

IE9、Chrome、FF、Opera支持ResponseHeader Access-Control-Allow-Origin
IE下得額外配置:
jQuery.support.cors = true; (啟用讀取上面那個頭信息的功能)
點擊IE瀏覽器的的「工具->Internet 選項->安全->自定義級別」將「其他」選項中的「通過域訪問數據源」選中為「啟用」或者「提示」,點擊確定就可以了。(自身的過濾)

❺ 如何解決ajax跨域問題

首先來看看在頁面中如何使用jQuery的ajax解決跨域問題的簡單版:

$(document).ready(function(){
var url='http://localhost:8080/WorkGroupManagment/open/getGroupById"
+"?id=1&callback=?';
$.ajax({
url:url,
dataType:'jsonp',
processData: false,
type:'get',
success:function(data){
alert(data.name);
},
error:function(XMLHttpRequest, textStatus, errorThrown) {
alert(XMLHttpRequest.status);
alert(XMLHttpRequest.readyState);
alert(textStatus);
}});
});

這樣寫是完全沒有問題的,起先error的處理函數中僅僅是alert(「error」),為了進一步弄清楚是什麼原因造成了錯誤,故將處理函數變 為上面的實現方式。最後一行alert使用為;parsererror。百思不得其解,繼續google,最終還是在萬能的stackoverflow找 到了答案,鏈接在這里。原因是jsonp的格式與json格式有著細微的差別,所以在server端的代碼上稍稍有所不同。
比較一下json與jsonp格式的區別:
json格式:
{
"message":"獲取成功",
"state":"1",
"result":{"name":"工作組1","id":1,"description":"11"}
}

jsonp格式:
callback({
"message":"獲取成功",
"state":"1",
"result":{"name":"工作組1","id":1,"description":"11"}
})

看出來區別了吧,在url中callback傳到後台的參數是神馬callback就是神馬,jsonp比json外面有多了一層,callback()。這樣就知道怎麼處理它了。於是修改後台代碼。
後台java代碼最終如下:

@RequestMapping(value = "/getGroupById")
public String getGroupById(@RequestParam("id") Long id,
HttpServletRequest request, HttpServletResponse response)
throws IOException {
String callback = request.getParameter("callback");
ReturnObject result = null;
Group group = null;
try {
group = groupService.getGroupById(id);
result = new ReturnObject(group, "獲取成功", Constants.RESULT_SUCCESS);
} catch (BusinessException e) {
e.printStackTrace();
result = new ReturnObject(group, "獲取失敗", Constants.RESULT_FAILED);
}
String json = JsonConverter.bean2Json(result);
response.setContentType("text/html");
response.setCharacterEncoding("utf-8");
PrintWriter out = response.getWriter();
out.print(callback + "(" + json + ")");
return null;
}

注意這里需要先將查詢結果轉換我json格式,然後用參數callback在json外面再套一層,就變成了jsonp。指定數據類型為jsonp的ajax就可以做進一步處理了。
雖然這樣解決了跨域問題,還是回顧下造成parsererror的原因。原因在於盲目的把json格式的數據當做jsonp格式的數據讓ajax處理,造成了這個錯誤,此時server端代碼是這樣的:

@RequestMapping(value = "/getGroupById")
@ResponseBody
public ReturnObject getGroupById(@RequestParam("id") Long id,
HttpServletRequest request, HttpServletResponse response){
String callback = request.getParameter("callback");
ReturnObject result = null;
Group group = null;
try {
group = groupService.getGroupById(id);
result = new ReturnObject(group, "獲取成功", Constants.RESULT_SUCCESS);
} catch (BusinessException e) {
e.printStackTrace();
result = new ReturnObject(group, "獲取失敗", Constants.RESULT_FAILED);
}
return result;
}

至此解決ajax跨域問題的第一種方式就告一段落。

❻ ajax跨域請求如何實現

方法一、 採用jsonp (只支持get請求,後端返回的jsonp格式json,後端無需做請求放行操作)

方式三: XHR2(XMLHttpRequest Level 2)

需要設置後端請求放行
response.setHeader(「Access-Control-Allow-Origin」,」*」);
response.setHeader(「Access-Control-Allow-Methods」,」GET,POST」);

1.可以獲取伺服器端的二進制數據。
2.可以友好的提交表單數據
3.可以上傳文件(內置控制上傳進度事件邏輯)
4.使用HTML表單來初始化一個FormData對象

❼ jquery ajax 跨域訪問問題

jsonp可以傳遞get不可傳遞post,目前跨域只能是jsonp方式,雖然樓上說的都有理,但是歸根到底還是沒有解決 遠程發送post數據到伺服器的問題,目前我也沒有找到合適的辦法,不過如果客戶端執行WEB腳本的話,在後台是可以發送post的,假如只是靜態,目前沒有別的辦法
能做的只能盡量簡化傳輸數據大小,採用jsonp的get方式

❽ jsp ajax如何跨域訪問

jquery 的 jsonp是要有jsonpCallback屬性的,如:

$.ajax(
url:"",
type:"post",
dataType:"jsonp",
jsonpCallback:"mycallback",
...,
success:function(){},error:function(){}
);

這個jsonpCallback伺服器端要獲取到,然後在返回的數據包在jsonpCallback中,如:

mycallback({"name":"德緣哥哥","gerden":"boy"})//當然這整個是字元串哦!