Сообщение Axios в ответе js выдает ошибку. На запрошенном ресурсе отсутствует заголовок «Access-Control-Allow-Origin».

В вашем примере идентификаторы в массиве $ data нумеруются последовательно и начинаются с 1. Код, который я даю ниже, предполагает, что это всегда так. Если это не так, код не работает.

$result = array();
$index = 0;
foreach ($order as $position) {
    $result[$index] = $data[$position - 1];
    $index++;
}

В http://codepad.org/YC8w0yHh вы можете видеть, что он работает для ваших данных примера .

EDIT

Если упомянутое выше предположение не выполняется, следующий код достигнет того же результата:

 1, 'title' => 'whatever'),
    array('id' => 2, 'title' => 'whatever'),
    array('id' => 3, 'title' => 'whatever')
);

$order = array(2,3,1);
$order = array_flip($order);

function cmp($a, $b)
{
    global $order;

    $posA = $order[$a['id']];
    $posB = $order[$b['id']];

    if ($posA == $posB) {
        return 0;
    }
    return ($posA < $posB) ? -1 : 1;
}

usort($data, 'cmp');

var_dump($data);

См. http: //codepad.org/Q7EcTSfs для доказательства.

Вызывая array_flip () в массиве $ order, он может использоваться для поиска позиции. Это похоже на поиск хеш-таблицы, который является линейным по времени или O (n). Вы не можете сделать лучше.

0
задан Vinay 17 January 2019 в 13:03
поделиться

3 ответа

Вы должны добавить прокси-адрес в свой файл package.json, например, :

    },
  "proxy": "http://localhost:8080",
  "devDependencies": {

Далее, вы просто добавляете все, что находится после localhost, т.е.

axios.get("/onlineshopping/login")
0
ответ дан kubwosz 17 January 2019 в 13:03
поделиться

После добавления конфигурации фильтра CORS в весенней загрузке и типа контента в application / x-www-form-urlencoded in axios request моя проблема решена.

export const addProjectTask = (username,password, history) => async dispatch => {

axios.post('http://localhost:8080/onlineshopping/login', 
  Qs.stringify({
  username: username,
  password: password
  }), {
  headers: { 
  "Content-Type": "application/x-www-form-urlencoded"
}})
.then(function (response) {
  console.log(response);
  history.push("/");  
})
.catch(function (error) {
  console.log(error);
});
};
0
ответ дан Vinay 17 January 2019 в 13:03
поделиться

Вы должны создать прокси для вызовов API.

Здесь прокси использует шаблон url для сопоставления с вызовами API и перенаправления их на соответствующий сервер.

Попробуйте выполнить следующее:

  • Установите http-proxy-middleware

    npm install http-proxy-middleware --save
    
  • create src / setupProxy.js

    const proxy = require('http-proxy-middleware');
    
    module.exports = function(app) {
    
       app.use(proxy('/api', { target: 'http://localhost:8080/' }));
    
    };
    
  • Затем запустите ваш локальный сервер разработки

0
ответ дан Rakesh Makluri 17 January 2019 в 13:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: