2

我正在从 php 到 grails 应用程序进行跨域 ajax 调用。

我的php脚本:

$uid=$_GET['uid'];
function getData($uid)

{
    $dataUrl='http://localhost:8080/profile/user/teacher?id='.$uid;
    $json=file_get_contents($dataUrl);
    print_r($json);

}
getData($uid);

调用此 php 脚本的 Javascript 是

$.getJSON('userdata.php?uid'+1,function(data){
  console.log(data);
});

在这里,当我调用 getJSON 时,它会转到我的应用程序的登录页面,即使我没有检查是否登录了该特定方法。即它是一种公共方法,我无需登录即可访问。

我正在使用 springsecurity 插件进行身份验证管理。

4

1 回答 1

1

这可能是因为 spring 安全性(可能是您的操作或控制器具有安全注释,或者可能是操作通过配置中的 url 映射是安全的)。

你可以绕过

如果使用注释

@Secured('IS_AUTHENTICATED_ANONYMOUSLY')
def teacher() {
    ....
}

如果在配置中使用 url 映射

grails.plugins.springsecurity.interceptUrlMap = [
...
'/user/teacher/**': ['IS_AUTHENTICATED_ANONYMOUSLY'],
...
]
于 2013-09-16T12:07:55.203 回答