91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

ActionContext如何處理跨域請求

小樊
82
2024-10-10 06:16:47
欄目: 編程語言

ActionContext 是 Struts2 框架中的一個核心組件,它封裝了與當前請求相關的所有信息。在處理跨域請求時,可以使用 ActionContext 來設置和獲取請求的頭部信息、參數等。

以下是一個簡單的示例,說明如何使用 ActionContext 處理跨域請求:

  1. 首先,確保你的項目中已經引入了 Struts2 相關的依賴。

  2. 在你的 Struts2 動作類中,獲取 ActionContext 實例:

import com.opensymphony.xwork2.ActionContext;

public class MyAction {
    public String execute() {
        // 獲取 ActionContext 實例
        ActionContext actionContext = ActionContext.getContext();

        // ...
    }
}
  1. 設置跨域請求的頭部信息。例如,設置 Access-Control-Allow-Origin
import javax.servlet.http.HttpServletResponse;

public class MyAction {
    public String execute() {
        // 獲取 ActionContext 實例
        ActionContext actionContext = ActionContext.getContext();

        // 獲取 HttpServletResponse 對象
        HttpServletResponse response = (HttpServletResponse) actionContext.get("request").getResponse();

        // 設置跨域請求的頭部信息
        response.setHeader("Access-Control-Allow-Origin", "*");
        response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
        response.setHeader("Access-Control-Max-Age", "3600");
        response.setHeader("Access-Control-Allow-Headers", "Content-Type, Authorization");

        // ...
    }
}
  1. 如果需要處理預檢請求(OPTIONS 請求),可以在動作類中添加一個處理預檢請求的方法:
public class MyAction {
    public String execute() {
        // ...
    }

    public String options() {
        // 獲取 ActionContext 實例
        ActionContext actionContext = ActionContext.getContext();

        // 獲取 HttpServletResponse 對象
        HttpServletResponse response = (HttpServletResponse) actionContext.get("request").getResponse();

        // 設置跨域請求的頭部信息
        response.setHeader("Access-Control-Allow-Origin", "*");
        response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
        response.setHeader("Access-Control-Max-Age", "3600");
        response.setHeader("Access-Control-Allow-Headers", "Content-Type, Authorization");

        // 返回成功響應
        return "success";
    }
}
  1. 配置 Struts2 動作映射,將預檢請求映射到 options 方法:
<struts>
    <package name="default" extends="struts-default">
        <action name="myAction" class="com.example.MyAction">
            <interceptor-ref name="defaultStack"></interceptor-ref>
            <result name="success">/success.jsp</result>
            <result name="input">/input.jsp</result>
            <param name="method">options</param>
        </action>
    </package>
</struts>

現在,當客戶端發起跨域請求時,服務器會正確處理并返回相應的響應。

0
武夷山市| 岢岚县| 三明市| 定安县| 时尚| 宁强县| 湟中县| 田阳县| 株洲县| 彰化市| 五莲县| 大埔区| 宁陵县| 武安市| 镇康县| 宽城| 临江市| 达孜县| 贞丰县| 克什克腾旗| 柳林县| 永清县| 江山市| 汝南县| 大余县| 伊川县| 姜堰市| 武乡县| 军事| 金阳县| 桃源县| 兰溪市| 垣曲县| 韩城市| 会同县| 淅川县| 玉龙| 治县。| 浦东新区| 香港| 贡山|