问题
我想从另一个HTTPS域接收javascript变量,但是我收到了错误。
我尝试过的事情
这是我能够获得的最简化的代码版本,但仍会产生上述问题。
public View getView(final int position, View convertView, ViewGroup parent) {
View vi = convertView;
SpinnerListAdapter.ViewHolder holder;
if(convertView==null){
vi = inflater.inflate(R.layout.spinner_item_row, null);
holder = new SpinnerListAdapter.ViewHolder();
holder.tv_itemname = (TextView) vi.findViewById(R.id.tv_itemname);
vi.setTag( holder );
}
else
{
holder = (SpinnerListAdapter.ViewHolder) vi.getTag();
}
if (position == 0)
{
holder.tv_itemname.setText("Choose one of the following category");
}else{
holder.tv_itemname.setText(itemList[position]);
}
return vi;
}
我也试过
$.ajax({
url: "https://www.example.com/page.asp",
crossDomain:true,
success:function(data){
alert("success")
},
error : function() {
alert("error")
}
});
并且以下代码也添加在远程页面
中$.ajax({
url: "https://www.example.com/page.asp",
dataType: "jsonp",
cache: true,
success:function(data){
alert("success")
},
error : function(XMLHttpRequest, textStatus, errorThrown) {
alert("error")
}
});
它不起作用,因为它会出现以下错误:
' https://example.com'被CORS政策阻止:没有 '访问控制允许来源'标题出现在请求的上 资源。起源' http://example.com'因此不允许访问。
问题
所以我的基本问题是,如何从HTTPS页面到HTTP页面接收javascript变量?
答案 0 :(得分:1)
您是否尝试过在web.config中设置? 我只在asp.net web api中使用它,并且在其中有一个用于管理cors的dll。
<httpProtocol>
<customHeaders>
<clear />
<add name="X-Powered-By" value="ASP.NET" />
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Headers" value="Accept, X-Access-Token, X-Application-Name, X-Request-Sent-Time"/>
<add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS"/>
<add name="Access-Control-Allow-Credentials" value="true"/>
</customHeaders>
<redirectHeaders>
<clear />
</redirectHeaders>
</httpProtocol>
答案 1 :(得分:0)
我终于设法通过以下代码接收javascript变量:
$.ajax({
method: "GET",
url: "http://www.example.com/test.js",
dataType: "script",
success:function(data){
alert(variable)
}
});
谢谢。