当前位置: 首页 > 面试题库 >

如何在服务器上启用跨域请求?

夏侯兴怀
2023-03-14
问题内容

我的服务器上托管了一个json文件。当我尝试向json文件发出Ajax“ GET”请求时,它失败。

请参阅Safari中的控制台,其中显示“无法加载资源”。

Firebug显示“ 200 OK”,但未显示响应。甚至Firebug也不会显示JSON标签。

我相信这是因为不允许使用AJAX进行跨域请求。

我想知道如何克服这个问题?另外,如果要在服务器上启用跨域请求,则认为crossdomain.xml需要创建文件或其他内容。我不确定,但这就是我所知道的。我在Google上搜索,但找不到任何相关链接。

在这方面的任何帮助都将受到高度赞赏。

谢谢。

更新: 我没有使用任何服务器端脚本语言(PHP,ASP.NET等)。我正在使用普通HTML和JavaScript / jQuery。

UPDATE-2:

我使用以下代码进行跨域请求:

<script src="jquery-1.6.2.js"></script>
  <script>
  $(document).ready(function () {
    $.ajax({
      dataType: 'jsonp',
      data: '',
      jsonp: 'jsonp_callback',
      url: 'http://myhosting.net/myjsonfile.json',
      success: function (jsonData) {
        alert("success")
        alert(jsonData);
      },
      error: function(errorObj) {
        alert(errorObj.statusText);

      },
    });
});

当我在Firebug的“网络”标签中看到时,我看到了JSON标签,并且能够看到JSON响应。但是,不会调用“成功”回调处理程序,但是会调用“错误”回调处理程序,并且我得到警告说parseerror

知道有什么问题吗?


问题答案:
Access-Control-Allow-Origin: http://yourdomain-you-are-connecting-from.com

在目标服务器上

在php中:

 header("Access-Control-Allow-Origin: http://yourdomain-you-are-connecting-from.com");

如果您不想使用服务器脚本语言:请将其放在(linux)控制台中

a2enmod headers

并添加到您的.htaccess文件中

Header set Access-Control-Allow-Origin: http://yourdomain-you-are-connecting-from.com


 类似资料:
  • 本文向大家介绍跨域请求 Apache 服务器配置的方法,包括了跨域请求 Apache 服务器配置的方法的使用技巧和注意事项,需要的朋友参考一下 1.修改服务器配置文件 2.编辑httpd.conf 找下面这行,把#去掉,目的是开启apache头信息自定义模块 重点内容 意思是对这个域名的资源进行访问时,添加一个头信息 最后重启服务器生效 以上所述是小编给大家介绍的跨域请求 Apache 服务器配置

  • 本文向大家介绍JS跨域请求外部服务器的资源,包括了JS跨域请求外部服务器的资源的使用技巧和注意事项,需要的朋友参考一下 tomcat服务器提供的接口,不能在其他域中访问的时候,需要增 Access-Control-Allow-Origin:* 以下操作均在需要被访问的项目中设置 1、编写拦截器代码 2、配置web.xml

  • 我有三个不同的重度编码网络项目;其中两个(新的)是用Java/Script新开发的,另一个(旧的)是用PHP新开发的。这三个项目都有一些共同的资源,如HTML容器,元素类等。此外,其中一个Java项目是主项目,它调用了其他两个项目。 问题是Java项目在Tomcat服务器上运行,PHP需要在Apache服务器上运行。PHP项目有一些资源的位置路径,比如“。。。/someResourceFolder

  • 问题内容: 我正在尝试请求位于另一个域/服务器上的数据,但是在尝试发送请求时出现异常。 错误: 未捕获的异常:[异常…“组件返回的故障代码:0x80004005(NS_ERROR_FAILURE)” nsresult:“ 0x80004005(NS_ERROR_FAILURE)” 这是请求不在同一域/服务器上的内容的正确方法吗?还是有其他方法可以做到这一点? 我正在firefox 8.0中对此进行

  • 我在C:\glassfish3目录中安装了GlassFish服务器。 当我在C:\glassfish3\bin目录中键入“dir”时,文件就会被列出。 但是当我输入asadmin时,我得到“系统找不到指定的路径”。 可能出了什么问题? 如何启动GlassFish服务器? --编辑-- 此外,在安装后,我得到: 创建域 执行命令:C:\glassfish3\glassfish\bin\asadmin

  • 在我的应用程序中,我有一些异步web服务。服务器接受请求,返回OK响应,并使用AsyncTaskExecutor开始处理请求。我的问题是如何在此处启用请求范围,因为在此处理中,我需要获取由以下注释的类: 现在我得到异常: 因为它在SimpleAsynctaskeExecutor中运行,而不是在DispatcherServlet中运行 我的异步处理请求 其中,taskExecutor是: