kbmmw 的HTTPSmartService中的跨域访问

简介: 有同学在使用kbmmw 与extjs 结合的时候,涉及到了跨域访问,这个在 kbmmw 里面已经完全解决。 extjs 在访问跨域的时候,首先会使用OPIONS  调用,服务端要根据浏览器请求的 head 来回应客户端,如果正确,则客户端再调用GET 方式访问服务器。

有同学在使用kbmmw 与extjs 结合的时候,涉及到了跨域访问,这个在

kbmmw 里面已经完全解决。

extjs 在访问跨域的时候,首先会使用OPIONS  调用,服务端要根据浏览器请求的

head 来回应客户端,如果正确,则客户端再调用GET 方式访问服务器。

像不像我们地下党接头一样,首先要对一下暗号,暗号正确,开始交出城防图,不正确,对不起,开枪!

服务器端的代码,kbmmw 已经替大家处理了,很简单,只是设置允许访问的信息。

 [kbmMW_Method]
     [kbmMW_Rest('method:get, path: "itemlist/{query}"')]
     function GetItemlist([kbmMW_Rest('value: "{query}"')] const aQuery:string;
                          [kbmMW_Rest('value: "$ph", required: true')] const ph:string;
                          [kbmMW_Rest('value: "$pm", required: true')] const pm:string;
                          [kbmMW_Rest('value: "$xh", required: true')] const xh:string;
                          [kbmMW_Rest('value: "$gg", required: true')] const gg:string;
                          [kbmMW_Rest('value: "$th", required: true')] const th:string;
                          [kbmMW_Rest('value: "$jbm", required: true')] const jbm:string;
                          [kbmMW_Rest('value: "$gc", required: true')] const gc:string;
                          [kbmMW_Rest('value: "$limit", required: true')] const pagesize:string;
                          [kbmMW_Rest('value: "$page", required: true')] const pageindex:string;
                          [kbmMW_Rest('value: "$callback", required: true')] const callback:string):string;
  end;

implementation

uses kbmMWExceptions, Unit1;

{$R *.dfm}

{ TdgwRestService }

function TdgwRestService.GetItemlist(const aQuery, ph, pm, xh, gg, th, jbm,
  gc,pagesize, pageindex,callback: string): string;
begin
    ProcessCORSRequest;
    result := '{"result":"1","sumcount":1,"data":[{"PH":"ph001","PM":"pm001","XH":"xh001"},'
      + '{"PH":"ph002","PM":"pm002","XH":"xh002"}]}';
    if callback<>'' then
      Result:= callback + '(' + Result + ');';

end;

procedure TdgwRestService.kbmMWCustomHTTPSmartServiceCORS(Sender: TObject;
  const ARequestHelper, AResponseHelper: TkbmMWHTTPTransportStreamHelper;
  const AOrigin: string; var AAllowedOrigins, AAllowedMethods,
  AAllowedHeaders: string);
begin
  AAllowedMethods:='GET' ;
 AAllowedOrigins:='http://127.0.0.1';
  AAllowedHeaders:= 'x-requested-with';
 
end;

 

运行截图

网站的源地址是http://127.0.0.1

跨域访问的地址是http://127.0.0.1:81

下面一图顶万言。

还是很简单的。

 

目录
相关文章
|
9月前
|
JSON JavaScript 前端开发
如何处理跨域请求:JSONP、CORS 和代理服务器
处理跨域请求是前端开发中的常见挑战,因为浏览器的同源策略限制了在不同域名、协议或端口之间进行直接通信。为了解决跨域请求的问题,可以使用以下三种常见的方法:JSONP、CORS和代理服务器。
278 0
|
9月前
|
API
百度API调用JSONP解决跨越问题 been blocked by CORS policy: No ‘Access-Control-Allow-Origin‘ header
百度API调用JSONP解决跨越问题 been blocked by CORS policy: No ‘Access-Control-Allow-Origin‘ header
145 0
|
11月前
|
Web App开发 存储 安全
新版本Chrome同源策略、跨域问题处理No ‘Access-Control-Allow-Origin‘ header is present on the requested resource.
新版本Chrome同源策略、跨域问题处理No ‘Access-Control-Allow-Origin‘ header is present on the requested resource.
470 0
|
缓存 安全 搜索推荐
Cors跨域(三):Access-Control-Allow-Origin多域名?
Cors跨域(三):Access-Control-Allow-Origin多域名?
Cors跨域(三):Access-Control-Allow-Origin多域名?
|
JSON 缓存 JavaScript
同源策略与跨域访问(jsonp和cors等)
同源策略与跨域访问(jsonp和cors等)
263 0
同源策略与跨域访问(jsonp和cors等)
|
Web App开发 前端开发 JavaScript
|
Web App开发 前端开发 安全
介绍一个能避免 CORS 错误的 Chrome 扩展 - Moesif Origin & CORS Changer
介绍一个能避免 CORS 错误的 Chrome 扩展 - Moesif Origin & CORS Changer
284 0
介绍一个能避免 CORS 错误的 Chrome 扩展 - Moesif Origin & CORS Changer
|
Web App开发 前端开发 安全
介绍一个能避免 CORS 错误的 Chrome 扩展 - Moesif Origin & CORS Changer
介绍一个能避免 CORS 错误的 Chrome 扩展 - Moesif Origin & CORS Changer
279 0
  介绍一个能避免 CORS 错误的 Chrome 扩展 - Moesif Origin & CORS Changer
|
Web App开发 JSON 前端开发
搞定所有的跨域请求问题: jsonp &amp; CORS
网上各种跨域教程,各种实践,各种问答,除了简单的 jsonp 以外,很多说 CORS 的都是行不通的,老是缺那么一两个关键的配置。
1242 0