2017-10-02 12 views
0

私はノードで動作しているサーバを持っていますが、郵便番号を使ってみましたが、うまく動作しますが、IOSクライアントから実行するとURLは実行されません。さらに具体的にはAlamofireはURLを実行しません

let mainURL = "https://examplelogin.com" 
let facebookLogin = "\(mainURL)/api/accounts/login" 

func loginButtonTapped(_ name: String, _ pass: String) { 

     let parameters: [String: AnyObject] = [ 
      "name": name as AnyObject, 
      "password": pass as AnyObject 
     ] 

     Alamofire.request(facebookLogin, method: .post, parameters: parameters, encoding: JSONEncoding.default) 
      .responseJSON { response in 
       if let value = response.result.value { 
        let json = JSON(value) 

        // Do something 


       } 
     } 

} 

Alamofire

ノードサーバ

​​

APIを呼び出していない、私は完全なドメイン名を取得するためにnamecheapを使用し、Herokuの上で私のノードサーバを開催しました、しかしそのために私のiosクライアントはAPIを実行しません。私はInfo.plistに何かを追加する必要がありますか?

+0

アラモファイアはAPIも実行しません – sinusGob

+0

@sinusGobあなたは "Content-Type"を設定してチェックしますか? –

+0

デバッグペインに警告が表示されますか? – ozgur

答えて

1

この

はショーのエラーのためにこのコードを1.addしてみてください。

else if let ERROR = response.result.error { 
    print(ERROR.localizedDescription) 
} 

2.このコードをinfo.plistファイルに追加します。

<key>NSAppTransportSecurity</key> 
<dict> 
    <key>NSAllowsArbitraryLoads</key> <true/> 
</dict> 
+0

' NSAppTransportSecurity NSAllowsArbitraryLoads 'このコードはdefinetely私を救いました! – sinusGob

+0

@sinusGobよろしくお願いします:) –

0
Try this code ... 

func loginButtonTapped(_ name: String, _ pass: String) { 

    let parameters = [ 
       "name": name, 
       "password": pass 
      ] 
      Alamofire.request(facebookLogin, method: .post, parameters: parameters as [String : AnyObject], encoding: JSONEncoding.default) 
       .responseJSON { response in 
        if let value = response.result.value { 
         let json = JSON(value) 

         // Do something 

        } 
      } 

    } 
-1

私は同じ問題を持っていたが、私はこれを行うことによって解決している: -

jsonDataは=試してみましょう! JSONSerialization.data(withJSONObject:dictの(あなたはパラメータが含まれている渡したい辞書)、オプション:JSONSerialization.WritingOptions.prettyPrinted)

let jsonString = NSString(data: jsonData, encoding: String.Encoding.utf8.rawValue)! as String 

    Alamofire.request(url, method: .post, parameters: jsonString, encoding:JSONEncoding.default, headers: nil).responseJSON { (response:DataResponse<Any>) in 
     switch(response.result) 
     { 

     } 
    } 
+0

いいえJSON文字列は人間のためです。 JSONデータはコンピュータ用です。データを文字列表現に変換する必要はありません。サーバーがJSON文字列を要求する場合は、サーバーを修正します。しかし、これはこの問題の解決策ではありません。 //そして、とにかくそれは間違っている。なぜあなたはNSStringを初期化し、それを強制的にStringにキャストしますか?直接Stringを作成する必要があります。全体として、このコード全体は役に立たず、不要です。 – Moritz

関連する問題