找回密码
 立即注册

QQ登录

只需一步,快速开始

dystar001 悬赏达人认证

高级会员

63

主题

423

帖子

1686

积分

高级会员

积分
1686

活字格认证圣诞拼拼乐悬赏达人

dystar001 悬赏达人认证
高级会员   /  发表于:2019-12-14 00:56  /   查看:3312  /  回复:3
1金币
各位大神,请教一下:

我用活字格做了一个项目P1,里面包含一个服务器的webapi,发布到了本地:127.0.0.1/P1这个目录下面。
在这个项目里面的页面,调用这个webapi,一切正常。

但是我在另外一个项目中P2,发布目录是:127.0.0.1/P2 ,在P2这项目中的页面调用前面那个webapi,系统就没有相应,
查看后,发现系统报错:

No 'Access-Control-Allow-Origin' header is present on the requested resource.

查下来是说禁止了跨域访问。

所以请问一下,用活字格做的webapi,怎么才能解决跨域访问的问题。

谢谢!

3 个回复

倒序浏览
Eric.Liang讲师达人认证 悬赏达人认证 活字格认证
超级版主   /  发表于:2019-12-16 11:02:11
沙发
1.在编写服务器端API的时候,请在代码中添加这三行
  1. Context.Response.Headers.Append("Access-Control-Allow-Origin", "*");
  2.             Context.Response.Headers.Append("Access-Control-Allow-Headers", "*");
  3.             Context.Response.Headers.Append("Access-Control-Allow-Methods", "GET,POST");
复制代码


2.在前端调用服务器端API的时候,使用ajax的方式调用

  1. $.ajax({
  2.             url: "",
  3.             type: "POST",
  4.             crossDomain: true,
  5.             success: function (response) {
  6.                 var resp = JSON.parse(response)
  7.                 alert(resp.status);
  8.             },
  9.             error: function (xhr, status) {
  10.                 alert("error");
  11.             }
  12.         });
复制代码
注意:crossDomin需要存在
回复 使用道具 举报
dystar001悬赏达人认证
高级会员   /  发表于:2019-12-16 14:33:10
板凳
本帖最后由 dystar001 于 2019-12-16 14:34 编辑
Eric.Liang 发表于 2019-12-16 11:02
1.在编写服务器端API的时候,请在代码中添加这三行

2.在前端调用服务器端API的时候,使用ajax的方式调用 ...
目前服务器API 已经加上您提供的几句代码了。
再请问一下,如果前端用下面这种语法的话,

$.post("http://127.0.0.1:8080/sendData", para, function (result) { Forguncy.Page.getCell("csfh1").setValue(result) });

crossDomain: true,   这句话要加在什么地方?

谢谢!


回复 使用道具 举报
Eric.Liang讲师达人认证 悬赏达人认证 活字格认证
超级版主   /  发表于:2019-12-16 18:30:59
地板
dystar001 发表于 2019-12-16 14:33
目前服务器API 已经加上您提供的几句代码了。
再请问一下,如果前端用下面这种语法的话,

$.post不能加这个,你用原生的$.ajax来做
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部