2017-03-02 32 views
1

在我離子2應用程序,我是從示例站點www.my-website.com/member/loginPersist.do使用的代碼塊中獲取數據沒有反應:Http.post()AJAX從JSP /春服務器

/member/loginPersist是一個Spring MVC控制器

登錄-service.ts

private GetUser(user : User): Promise<any> { 
    let options = this.makeHeader("post"); 
    let x = this.http.post("http://my-website.com/member/loginPersist.do", this.serialize(user) ,options).toPromise().catch(this.handleError); 

    return x; 

    } 
private makeHeader(method : string){ 
    let headers = new Headers({ 
    'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8', 
    'Accept': 'application/json, text/javascript, */*; q=0.01', 
    'X-Requested-With': 'XMLHttpRequest' 

    }); 
    let options = new RequestOptions({ headers: headers }); 

    return options; 
} 

但我得到沒有反應 /空白(無JSON結果)和狀態代碼是200 OK。但迴應是

,但如果我更改URL,以www.site.com/test.php我得到從PHP的響應。所以我知道我的http請求代碼不是問題。

這個問題與JSP/Spring服務器有關嗎?以及如何獲得JSON響應

+0

不容易說給你什麼在這裏。請注意,將未綁定的方法作爲回調傳遞是一種危險的做法。 –

+0

對不起,請不要關注。無約束方法是什麼意思? –

+0

查找「動態''在JavaScript中綁定'」。那麼你將只有一個理由懷疑角度教程。 –

回答

2

根據您提供的信息,我的猜測是您有跨源請求問題。請確保您的控制器允許該方法的跨源請求。只是anotate與

@CrossOrigin 

到服務器的方法,這將基本上指示應以它接受來自任何域的請求的瀏覽器響應。您也可以限制您想要允許的域名。更多此處http://docs.spring.io/spring/docs/current/spring-framework-reference/html/cors.html

如果您在服務器上未啓用此功能,則由於安全策略,瀏覽器將無法完成請求。

+0

我會嘗試@artemisian謝謝你的回覆。 –