您的位置:軟件測試 > 開源軟件測試 > 開源軟件測試解決方案 >
跨域訪問的解決方案
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時間:[ 2013/12/12 9:23:24 ] 推薦標簽:

然后我們把這個servlet映射到某個url上,見web.xml:

    <servlet>
        <description>This servlet will create a jsonp object,it wraps the js function and the json object</description>
        <display-name>JSONPServlet</display-name>
        <servlet-name>JSONPServlet</servlet-name>
        <servlet-class>com.charles.jsonp.JSONPServlet</servlet-class>
      </servlet>
      <servlet-mapping>
        <servlet-name>JSONPServlet</servlet-name>
        <url-pattern>/JSONPServlet</url-pattern>
      </servlet-mapping>

現(xiàn)在我們測試服務(wù)器端是否已經(jīng)正確部署:

我們打開瀏覽器,輸入訪問服務(wù)器端這個servlet的url,注意帶上請求參數(shù),參數(shù)名為callbackFunc,參數(shù)值為任意函數(shù)名:則我們可以看到封裝后的JSONP效果,的確是“函數(shù)名(json對象)”的字符串形式。比如我們例子中,我們傳入的函數(shù)名是 someFunc ,而服務(wù)器端自身提供的json對象是{"title":"technical lead","name":"charles","info":"talent man"},則后服務(wù)器端返回的JSONP 字符串是someFunc{json}

客戶端:

服務(wù)器端部署正確后,我們讓客戶端部署在另外一個域:http://localhost:8180上,要實現(xiàn)跨域訪問,客戶端必須有2部分,1是定義一個回調(diào)函數(shù)(這個函數(shù)用于將來處理服務(wù)器json數(shù)據(jù)),二是一個頁面,這個頁面要用<script src來指向服務(wù)器端能 提供JSONP的url),我們一步步來:

先定義一個回調(diào)函數(shù):

這個回調(diào)函數(shù)能在控制臺和alert窗口打印出服務(wù)器端的json對象提供的信息

    //這段代碼用于定義回調(diào)函數(shù)
    function clientMethodWhichOperateServerResource(result){
        
        console.log("Begin to execute the call function named clientMethodWhichOperateServerResource(result)");
        
        //獲取服務(wù)器端傳遞過來的json字符串,轉(zhuǎn)為json對象
        var jsonObject=result;
        //從json對象中分離出一些相關(guān)信息
        var name=jsonObject.name;
        var title=jsonObject.title;
        var info=jsonObject.info;
        console.log("name: "+name);
        console.log("title: "+title);
        console.log("info: "+info);
        
    
        var serverInfoString="姓名: "+name+",";
        serverInfoString+="頭銜: "+title+",";
        serverInfoString+="信息: "+info;
        alert(serverInfoString);
    
    }

上一頁123下一頁
軟件測試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd