Почему я получаю запрос ОПЦИЙ вместо ПОЛУЧИТЬ запроса?

DISTINCT ON дает вам точно первый ряд упорядоченной группы. В вашем примере группа является частью id и date метки времени login_date

SELECT DISTINCT ON (id, login_date::date)
    *
FROM (
    -- 
) s
ORDER BY id, login_date::date, login_date

demo: db <> fiddle

Объяснение из ORDER BY предложения:

Вы должны упорядочить по столбцам DISTINCT в первую очередь. Но в вашем случае вы не хотите заказывать только по дате, но и по времени. Таким образом, после упорядочения по дате (что необходимо из-за ваших DISTINCT столбцов) вы должны упорядочить также по отметке времени.


Таким образом, весь запрос может быть упрощен до (без подзапроса):

SELECT DISTINCT ON (a.id, ah.modified::date) 
    a.id, 
    username, 
    email, 
    ah.modified as login_date
FROM accounts a 
JOIN account_history ah
    ON modified_acc_id = a.id
WHERE ah.data::jsonb->>'message' = 'Logon'
ORDER BY a.id, ah.modified::date, ah.modified 

277
задан Paul Tarjan 8 August 2016 в 06:06
поделиться

5 ответов

ОПЦИИ взяты из http://www.w3.org/TR/cors/ См. http://metajack.im/2010/01/ 19 / crossdomain-ajax-for-xmpp-http-binding-made-easy / для получения дополнительной информации

88
ответ дан 23 November 2019 в 02:06
поделиться

Я смог исправить это с помощью следующих заголовков

Access-Control-Allow-Origin
Access-Control-Allow-Headers
Access-Control-Allow-Credentials
Access-Control-Allow-Methods

Если вы используете Nodejs, вот код, который вы можете скопировать / вставить.

app.use((req, res, next) => {
  res.header('Access-Control-Allow-Origin','*');
  res.header('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept');
  res.header('Access-Control-Allow-Credentials', true);
  res.header('Access-Control-Allow-Methods', 'GET, POST, PUT, PATCH');
  next();
});
0
ответ дан 23 November 2019 в 02:06
поделиться

Фактически, междоменные запросы AJAX (XMLHttp) не разрешены из соображений безопасности (подумайте о том, чтобы получить "ограниченную" веб-страницу со стороны клиента и отправить ее обратно на сервер - это будет проблемой безопасности).

Единственный обходной путь - обратные вызовы. Это: создание нового объекта сценария и указание src на конечный JavaScript, который является обратным вызовом со значениями JSON (myFunction ({data}), myFunction - это функция, которая что-то делает с данными (например, сохраняет их в переменной).

1
ответ дан 23 November 2019 в 02:06
поделиться

Я не верю, что jQuery естественным образом выполнит запрос JSONP, если ему будет предоставлен такой URL. Однако он выполнит запрос JSONP, когда вы сообщите ему, какой аргумент использовать для обратного вызова:

$.get("http://metaward.com/import/http://metaward.com/u/ptarjan?jsoncallback=?", function(data) {
     alert(data);
});

Это полностью зависит от принимающего сценария, чтобы использовать этот аргумент (который не должен называться "jsoncallback") , поэтому в этом случае функция никогда не будет вызвана. Но, поскольку вы заявили, что просто хотите, чтобы скрипт на metaward.com был выполнен, это сделает его.

2
ответ дан 23 November 2019 в 02:06
поделиться

Похоже, Firefox и Opera (также протестированные на Mac) не любят кросс-доменность (но Safari это устраивает).

Возможно, вам придется вызвать код на стороне локального сервера, чтобы свернуть удаленную страницу.

0
ответ дан 23 November 2019 в 02:06
поделиться
Другие вопросы по тегам:

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