2016-08-09 3 views
0

Я сделал ответное родное приложение, которое использовало nodejs и выражало для бэкэнд, включил cors и работает на android, но когда я начал переносить приложение для ios и запускать его в симуляторе iphone 6, он работает нормально, но когда дело доходит до попадания в api, я использовал суперагент для этой ошибки.Ошибка при использовании суперагента в реагировании на родное приложение ios

Error: Request has been terminated 
Possible causes: the network is offline, Origin is not allowed by Access-Control-Allow-Origin, the page is being unloaded, etc. 
    at Request.crossDomainError (http://localhost:8081/index.ios.bundle?platform=ios&dev=true&minify=false:80241:9) 
    at XMLHttpRequest.xhr.onreadystatechange (http://localhost:8081/index.ios.bundle?platform=ios&dev=true&minify=false:80311:13) 
    at XMLHttpRequest.dispatchEvent (http://localhost:8081/index.ios.bundle?platform=ios&dev=true&minify=false:10000:15) 
    at XMLHttpRequest.setReadyState (http://localhost:8081/index.ios.bundle?platform=ios&dev=true&minify=false:26063:6) 
    at XMLHttpRequest.__didCompleteResponse (http://localhost:8081/index.ios.bundle?platform=ios&dev=true&minify=false:25917:6) 
    at http://localhost:8081/index.ios.bundle?platform=ios&dev=true&minify=false:26011:52 
    at RCTDeviceEventEmitter.emit (http://localhost:8081/index.ios.bundle?platform=ios&dev=true&minify=false:9233:23) 
    at MessageQueue.__callFunction (http://localhost:8081/index.ios.bundle?platform=ios&dev=true&minify=false:7213:34) 
    at http://localhost:8081/index.ios.bundle?platform=ios&dev=true&minify=false:7104:8 
    at guard (http://localhost:8081/index.ios.bundle?platform=ios&dev=true&minify=false:7050:1) 

это, как я использовать суперагент

const request = require('superagent'); 

const req = request[options.method.toLowerCase()](options.uri) 
     .set(merge({}, options.headers, options.json ? {'Content-Type': 'application/json'} : {})) 
     .query(options.qs ? options.qs : {}) 
     .send(options.json || options.form || options.formData) 
     ; 
     const requestId = {}; 

     api.activeRequests.add(requestId); 
     return new Promise((resolve, reject) => { 
     req.end((err, res) => { 
      console.log({err, res}); 
      api.activeRequests.delete(requestId); 
      if (err || !res.ok) { 
      console.log(res); 
      const error = res ? (res.body ? res.body : res) : err; 
      reject(error); 
      } else { 
      resolve(res.body); 
      } 
     }); 
     }); 

Нужна помощь!

+0

Пожалуйста, создайте [MVCE] (http://stackoverflow.com/help/mcve), иначе вряд ли мы сможем помочь вам с информацией, которую вы публикуете исключительно. – Harald

+0

какая именно информация вам нужна? – Deepak

+0

Поставьте себя на место того, кто пытается ответить на ваш вопрос. Чем больше деталей вы можете предоставить им, тем легче будет помочь вам. Например, вы добавили небольшой фрагмент кода, но он компилируется в одиночку, это MVCE? Вы не указали важные детали из используемых вами программ, какие версии, какие платформы? ... Подробнее. – Harald

ответ

0

Это связано с тем, что запрос https должен быть отправлен не http. Так что теперь, так как я в режиме разработчика разрешил http в моем конкретном домене.