2017-07-14 172 views
1

我正在使用AngularJS,node.js,express.js,wso2和Twitter API在Twitter和我的應用程序之間進行通信。 即將到來的問題,我試圖從我的應用程序發送一條消息到Twitter使用wso2連接到Twitter併發送響應。預檢的錯誤請求/響應具有無效的HTTP狀態代碼400

下面是將消息發送到Twitter帳戶,併成功地利用郵遞員,但我嘗試在我的應用程序它給了預檢錯誤的請求/響應的時刻發佈的XML無效HTTP狀態碼400

<?xml version="1.0" encoding="UTF-8"?> 
    <proxy xmlns="http://ws.apache.org/ns/synapse" 
    name="tweetReply" 
    startOnLoad="true" 
    statistics="disable" 
    trace="disable" 
    transports="http"> 
<target> 
    <inSequence> 
    <property expression="json-eval($.screen_name)" name="screen_name"/> 
    <property expression="json-eval($.text)" name="text"/> 
    <log level="full"> 
     <property name="INIT" value="##### Subas - Call to the Proxy 
    #####"/> 
    </log> 
    <twitter.init> 
     <consumerKey>some keyt</consumerKey> 
     <consumerSecret>some secret</consumerSecret> 
     <accessToken>access-token</accessToken>    
     `<accessTokenSecret>access-token-secret</accessTokenSecret>` 
    </twitter.init> 
    <twitter.sendNewDirectMessages> 
     <screenName>{$ctx:screen_name}</screenName> 
     <text>{$ctx:text}</text> 
    </twitter.sendNewDirectMessages> 
    <property name="messageType" scope="axis2" value="application/json"/> 
    <respond/> 
    </inSequence> 
    </target> 
    <description/> 
    </proxy> 

當我產生從上面的XML它工作正常的網址,下面是對此我,當我們產生形成上述XML

http://hostname:8280/services/tweetReply.tweetReplyHttpEndpoint 

,並請求負載將獲得網址:

{ 
"screen_name":"pawan_mks", 
"text":"hello" 
} 

並將消息發送到Twitter,但做與AngularJS同樣的事情給我的問題

這裏是AngularJS代碼我想使用:

$scope.sendReplyMsg = function(replyMessage) { 
     var dataObj = { 
      "screen_name": "pawan_mps", 
      "text": "Hi Pawan From Angular JS" 
     };  
     var headerObj = { 


     headers: { 
      'Access-Control-Allow-Origin': '*', 
      'Access-Control-Allow-Methods':'POST,GET,PUT,DELETE,OPTIONS', 
      'Access-Control-Allow-Headers': 'Authorization,Lang', 
      'Content-Type': 'application/json', 
      'Accept': 'application/json', 
      } 
     }; 

$http.post("http://hostname:8280/services/tweetReply.tweetReplyHttpEndpoint", 
     dataObj, headerObj) 
       .success(function(data, status, headers, config) 
       {     
        console.log(data); 
       }) 
       .error(function(data, status, headers, config) 
       { 
        console.log(status); 
       }) 
      } 
+0

什麼是'http:// u /',是否應該是twitter API端點?你爲什麼要在_your_代碼中設置所有這些訪問控制標題?您是否在獲得400狀態碼時檢查了響應正文中包含的內容? – CBroe

+0

我已更新網址...它與Cross Domain有關,我發現它很難配置它... –

回答

0

此錯誤消息通常到達時CORS配置存在問題。

如果從本地機器或另一臺主機,它是由該後端在您擔任將在跨起源錯誤(CORS)結束了與主機不同測試此。要求後端開發人員在後端啓用CORS,在前端沒有太多可以做的事情。

解釋爲什麼這個工程上郵遞員,而不是在鉻是由於Chrome強制CORS的瀏覽器端的安全性,而不是郵差。

+0

所以基本上你說我需要對WSO2 -Tool進行配置更改,而不是Angular JS的一部分... –

+0

是的,這是正確的 – kisanme

+0

終於解決了這個問題....謝謝 –

相關問題